mid в vba



Vba функция mid

Автор Maksim Kurkovs задал вопрос в разделе Другие языки и технологии

VBA в чем проблема в функции MID? и получил лучший ответ

Ответ от Александр Погребняк[гуру]
Вы уверены, что ошибка именно в функции MID, а не в varRoman(j)?
varRoman - это массив?
Нумерация символов в строке начинается с 1. А у Вас i в цикле начинается с нуля и на первом шаге выглядит так
Mid(Number, 0, 1)
Александр Погребняк
(82147)
Понял. Нумерация символов в строке начинается с 1. А у Вас i в цикле начинается с нуля

Ответ от Максим[гуру]
Number это что?

Ответ от Ev[гуру]
Проблема в том, что
For i = 0 To Len(Number) Step 1
If Mid(Number, i, 1) = varRoman(j) Then
В строке не бывает нулевого символа, только первый, второй и т. д.
У вас i=0 вот MID() и не работает.
Кстати, выражение Step 1 в данном случае не нужно.
Неплохо бы правильно объявлять переменные и указывать их тип.
Dim i As Integer, j As Integer
Dim Number As String
Dim intResult As Integer
При объявлении переменной типа String её значение равно пустой строке (""),
а если переменная-число, то оно будет иметь значение 0,
поэтому присвоение intResult = 0 то же излишне

Ответ от Ёергей Шепелев[гуру]
Mid вроде как возвращает строку,, даже если varRoman(j) тоже строка, то сравнение их надо осуществлять через StrComp.
Eсли varRoman(j) не строка, то надо озаботиться приведением типов.

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: VBA в чем проблема в функции MID?
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*