Возвращает значение типа Variant (Long), определяющее положение первого вхождения одной строки в другую.
Синтаксис
InStr([start, ] string1, string2 [, compare ] )
Функция InStr имеет следующие аргументы:
| Аргумент | Описание |
|---|---|
| начало | Необязательный аргумент. Числовое выражение, которое задает начальное положение для каждого поиска. Если аргумент не задан, поиск начинается с первого символа. Если аргумент начало содержит значение NULL, возникает ошибка. Если задан аргумент сравнение, аргумент начало является обязательным. |
| строка1 | Обязательный аргумент. Представляет собой строковое выражение, в котором выполняется поиск. |
| строка2 | Обязательный аргумент. Искомое строковое выражение. |
| сравнение | Необязательный аргумент. Указывает тип сравнения строк. Если параметр compare имеет значение 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 | Позиция найденного соответствия |
| start > string2 | 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.