Dim pos AsInteger
pos = InStr("find the comma, in the string",",")
вернется 15 в поз
Если не найден, он вернет 0
Если вам нужно найти запятую с формулой Excel, вы можете использовать =FIND(",";A1)функцию.
Обратите внимание, что если вы хотите использовать, Instrчтобы найти позицию строки без учета регистра, используйте третий параметр Instr и vbTextCompareприсвойте ему значение const (или просто 1 для несгибаемых символов).
Dim posOf_A AsInteger
posOf_A = InStr(1,"find the comma, in the string","A", vbTextCompare)
даст вам значение 14.
Обратите внимание, что вы должны указать начальную позицию в этом случае, как указано в спецификации, с которой я связан: Аргумент start необходим, если указано сравнение.
Основываясь на ответе Рене, вы также можете написать функцию, которая возвращает либо TRUE, если подстрока, либо FALSE, если ее нет:
PublicFunction Contains(strBaseString AsString, strSearchTerm AsString)AsBoolean'Purpose: Returns TRUE if one string exists within anotherOnErrorGoTo ErrorMessage
Contains = InStr(strBaseString, strSearchTerm)ExitFunction
ErrorMessage:
MsgBox "The database has generated an error. Please contact the database administrator, quoting the following error message: '"& Err.Description &"'", vbCritical,"Database Error"EndEndFunction
Какую ошибку базы данных мы ожидаем в этой функции? Перехват ошибок и сообщение об ошибке кажутся совершенно бессмысленными.
Руби Нуби
11
@RoobieNuby Это просто обработка ошибок по умолчанию. Я включил это во все свои функции, потому что, если что-то пойдет не так, я хочу, чтобы персонал позвонил мне, а не пытался исправить это самостоятельно.
INSTR
тебя работает?Ответы:
Используйте функцию Instr
вернется 15 в поз
Если не найден, он вернет 0
Если вам нужно найти запятую с формулой Excel, вы можете использовать
=FIND(",";A1)
функцию.Обратите внимание, что если вы хотите использовать,
Instr
чтобы найти позицию строки без учета регистра, используйте третий параметр Instr иvbTextCompare
присвойте ему значение const (или просто 1 для несгибаемых символов).даст вам значение 14.
Обратите внимание, что вы должны указать начальную позицию в этом случае, как указано в спецификации, с которой я связан: Аргумент start необходим, если указано сравнение.
источник
Вы также можете использовать специальное слово
like
:источник
Также есть InStrRev функция которая делает то же самое, но начинает поиск с конца текста до начала.
Ответ Пер @ Рене ...
... все равно вернет 15 в pos, но если строка содержит более одной строки поиска, например слово "the", то:
... вернул бы 20 в поз, а не 6.
источник
Основываясь на ответе Рене, вы также можете написать функцию, которая возвращает либо TRUE, если подстрока, либо FALSE, если ее нет:
источник