Перейти к содержимому
Наше приложение «Дешевые авиабилеты» в AppGallery >>

VBA Excel. Функция InStr (синтаксис, параметры, примеры)

    Определение первого вхождения одной строки в другую с помощью функции InStr из кода VBA Excel. Синтаксис функции, параметры, примеры использования.

    Описание функции InStr

    InStr – это функция, которая предназначена для определения номера позиции первого вхождения одной строки в другую. Она возвращает значение типа Variant (Long).

    Функция InStr ищет первое вхождение одной строки в другую с начала исходной строки. Для поиска первого совпадения с конца исходной строки используется функция InStrRev.

    Функция InStr часто незаменима при определении параметров функций Left, Mid и Right. Также ее можно использовать для определения наличия искомой подстроки в заданной строке.

    Еще есть в VBA Excel функция InStrB, которая работает с байтовыми данными, содержащимися в строке. Она возвращает позицию байта, а не символа первого вхождения одной строки в другую. Смотрите ниже Пример 3.

    Синтаксис, параметры, значения

    Синтаксис функции InStr

    Полный вариант:

    Сокращенный вариант:

    Чаще всего в VBA Excel используется сокращенный вариант функции со значениями необязательных параметров по умолчанию.

    Параметры функции InStr

    Параметр Описание Значение по умолчанию
    start Необязательный аргумент.* Числовое выражение, которое задает начальную позицию для поиска. 1
    string1 Обязательный аргумент. Строковое выражение, в котором выполняется поиск.
    string2 Обязательный аргумент. Искомое строковое выражение.
    compare Необязательный аргумент. Задает тип сравнения строк. –1**

    * Если задан аргумент compare, аргумент start является обязательным.
    ** Если аргумент compare не указан, используется значение инструкции Option Compare, заданное на уровне модуля. Если инструкция Option Compare в начале модуля отсутствует, используется ее значение по умолчанию – 0 (двоичное сравнение).

    Если параметр start или параметр compare содержит значение NULL, возникает ошибка.

    Значения аргумента «compare»

    Константа Значение Описание
    vbUseCompareOption -1 Сравнение с помощью параметра инструкции Option Compare.
    vbBinaryCompare 0 Двоичное (бинарное) сравнение.*
    vbTextCompare 1 Текстовое сравнение.*
    vbDatabaseCompare 2 Сравнение на основе сведений из базы данных. Только для Microsoft Access.

    * При двоичном сравнении учитывается регистр букв, при текстовом – не учитывается.

    Значения функции InStr

    Если Возвращаемое значение
    string2 найдена в string1 Позиция первого найденного соответствия.
    string2 не найдена в string1 0
    string2 является пустой start
    string2 равна Null Null
    string1 является пустой 0
    string1 равна Null Null
    start больше длины string1 0

    Примеры использования в VBA Excel

    Пример 1

    Самый простой пример:

    Пример 2

    В этом примере, используя одинаковые строки, в которых выполняется поиск, и искомые подстроки, применим разные виды сравнения – двоичное (бинарное) и текстовое, и посмотрим на результаты.

    Обратите внимание: несмотря на то, что начало поиска мы задали с 10 символа, номер позиции первого вхождения считается с начала строки, в которой выполняется поиск.

    Пример 3

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

    Результат 7 при побайтовом сравнении получен для кодировки, у которой один символ составляет 2 байта.


    Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.