Функция InStr

Возвращает значение типа Variant (Long), определяющее положение первого вхождения одной строки в другую.

Некоторые примеры

Синтаксис

Instr ([начало, ]строка1, строка2[, сравнение] )

Функция InStr имеет следующие аргументы:

Аргумент

Описание

начало

Необязательный аргумент. Числовое выражение, которое задает начальное положение для каждого поиска. Если аргумент не задан, поиск начинается с первого символа. Если аргумент начало содержит значение NULL, возникает ошибка. Если задан аргумент сравнение, аргумент начало является обязательным.

строка1

Обязательный аргумент. Представляет собой строковое выражение, в котором выполняется поиск.

строка2

Обязательный аргумент. Искомое строковое выражение.

сравнение

Необязательный аргумент. Задает тип сравнения строк. Если аргумент сравнение содержит значение NULL, возникает ошибка. Если аргумент сравнение опущен, тип сравнения определяется параметром OptionCompare. Укажите допустимый LCID (код языка), чтобы использовать для сравнения правила, определяемые языковым стандартом.

Совет : В Access 2010 построитель выражений включает функцию IntelliSense, которая указывает требуемые аргументы. 

Параметры

Аргумент сравнение может принимать следующие значения:

Константа

Значение

Описание

vbUseCompareOption

–1

Выполняется сравнение с помощью параметра инструкции Option Compare.

vbBinaryCompare

0

Выполняется двоичное сравнение.

vbTextCompare

1

Выполняется текстовое сравнение.

vbDatabaseCompare

2

Только в Microsoft Office Access 2007. Выполняется сравнение на основе сведений из базы данных.


Возвращаемые значения

Если

Возвращаемое значение

строка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). Чтобы получить дополнительные сведения о работе с 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.
Совершенствование навыков
Перейти к обучению
Первоочередный доступ к новым возможностям
Присоединиться к программе предварительной оценки Office

Были ли сведения полезными?

Спасибо за ваш отзыв!

Благодарим за отзыв! Возможно, будет полезно связать вас с одним из наших специалистов службы поддержки Office.

×