Возвращает значение типа Variant (Long), определяющее положение первого вхождения одной строки в другую.
Синтаксис
InStr([начало;] строка1; строка2 [; сравните ] )
Функция InStr имеет следующие аргументы:
| Аргумент | Описание |
|---|---|
| начало | Необязательный аргумент. Числовое выражение, которое задает начальное положение для каждого поиска. Если аргумент не задан, поиск начинается с первого символа. Если аргумент начало содержит значение NULL, возникает ошибка. Если задан аргумент сравнение, аргумент начало является обязательным. |
| строка1 | Обязательный аргумент. Представляет собой строковое выражение, в котором выполняется поиск. |
| строка2 | Обязательный аргумент. Искомое строковое выражение. |
| сравнение | Необязательный аргумент. Определяет тип сравнения строк. Если значение сравнения равно NULL, возникает ошибка. Если параметр сравнения опущен, параметр OptionCompare определяет тип сравнения. Укажите допустимый идентификатор LCID (LocaleID), чтобы использовать в сравнении правила, относящиеся к конкретному языковому стандарту. |
Совет
В построителе выражений есть функция IntelliSense, поэтому вы можете узнать, какие аргументы требуются для выражения.
Параметры
Аргумент compare может принимать следующие значения.
| Константа | Значение | Описание |
|---|---|---|
| vbUseCompareOption | –1 | Выполняется сравнение с помощью параметра инструкции Option Compare. |
| vbBinaryCompare | 0 | Выполняется двоичное сравнение. |
| vbTextCompare | 1 | Выполняется текстовое сравнение. |
Возвращаемые значения
| Если | Возвращаемое значение |
|---|---|
| строка1 является пустой | 0 |
| строка1 равна NULL | NULL |
| строка2 является пустой | начало |
| строка2 равна NULL | NULL |
| строка2 не найдена | 0 |
| строка2 найдена в строке1 | Позиция найденного соответствия |
| начальная > строка2 | 0 |
Замечания
Функция InStrB используется с байтовыми данными, содержащимися в строке. Функция InStrB возвращает позицию байта, а не позицию знака первого вхождения одной строки в другую.
Примеры
Использование функции InStr в выраженииАргумент InStr можно использовать везде, где можно использовать выражения. Например, если требуется найти позицию первой точки (.) в поле, содержащем IP-адреса (IPAddress), ее можно найти с помощью InStr :
InStr(1,[IPAddress],".")
Функция InStr проверяет каждое значение в поле IPAddress и возвращает позицию первой точки. Следовательно, если первая часть IP-адреса равна 10., функция возвращает значение 3.
Можно использовать другие функции, использующие результат функции InStr, для извлечения значения октета IP-адреса, который предшествует первой точке, например:
Left([IPAddress],(InStr(1,[IPAddress],".")-1))
В этом примере функция InStr(1,[IPAddress],".") возвращает позицию первой точки. В результате вычитания 1 определяется количество знаков, предшествующих первой точке, в данном случае — 2. Затем функция Left получает эти символы из левой части поля IPAddress, возвращая значение 10.
Использование InStr в коде VBA
Примечание
В примерах ниже показано, как использовать эту функцию в модуле Visual Basic для приложений (VBA).
В данном примере функция InStr используется для получения позиции первого вхождения одной строки в другую.
Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP" ' String to search in.
SearchChar = "P" ' Search for "P".
' A textual comparison starting at position 4. Returns 6.
MyPos = Instr(4, SearchString, SearchChar, 1)
' A binary comparison starting at position 1. Returns 9.
MyPos = Instr(1, SearchString, SearchChar, 0)
' Comparison is binary by default
' (last argument is omitted).
MyPos = Instr(SearchString, SearchChar) ' Returns 9.
MyPos = Instr(1, SearchString, "W") ' Returns 0.