Instr в Excel VBA - макросы Easy Excel

Содержание

Простая функция Instr | Стартовая позиция | Ноль | Instr и If | Поиск без учета регистра

Использовать Instr в Excel VBA чтобы найти позицию подстроки в строке. Функция Instr довольно универсальна.

Поместите командную кнопку на свой рабочий лист и добавьте строки кода ниже. Чтобы выполнить строки кода, нажмите кнопку команды на листе.

Простая функция Instr

По умолчанию функция Instr начинает поиск с начала строки (позиция 1).

Код:

Тусклое состояние как строка
state = "Вирджиния"
MsgBox InStr (состояние, «джин»)

Результат:

Примечание: строка «джин» находится в позиции 4.

Начальная позиция

Вторая функция Instr ниже начинает поиск с позиции 7.

Код:

Тусклое состояние как строка
state = "Южная Каролина"
MsgBox InStr (состояние, «о»)
MsgBox InStr (7, состояние, «o»)

Результат:

Объяснение: первая функция Instr находит строку «o» в позиции 2. Вторая функция Instr начинает поиск в позиции 7 и находит строку «o» в позиции 10.

Нуль

Функция Instr возвращает 0, если строка не найдена (важно, как мы увидим дальше).

Код:

Тусклое состояние как строка
state = "Флорида"
MsgBox InStr (состояние, «нас»)

Результат:

Вывод: строка «нас» не найдена.

Instr и если

Давайте создадим простую программу VBA, которая использует Функция Instr.

Код:

Тусклое состояние как строка, подстрока как строка
state = Range ("A2"). Значение
substring = Диапазон ("B2"). Значение
Если InStr (состояние, подстрока)> 0 Тогда
Диапазон ("C2"). Значение = "Найдено"
Еще
Диапазон ("C2"). Значение = "Не найдено"
Конец, если

Результат при нажатии кнопки команды на листе:

Объяснение: строка «outh» найдена в позиции 2. Функция Instr возвращает 2. В результате Excel VBA помещает строку «Найдено» в ячейку C2.

Поиск без учета регистра

По умолчанию функция Instr выполняет поиск с учетом регистра. Введите строку «dakota» в ячейку B2 и нажмите кнопку команды на листе.

Объяснение: строка "dakota" не найдена (первая буква не заглавная). Функция Instr возвращает 0. В результате Excel VBA помещает строку «Не найдено» в ячейку C2.

Чтобы выполнить поиск без учета регистра, обновите код следующим образом:

Тусклое состояние как строка, подстрока как строка
state = Range ("A2"). Значение
substring = Диапазон ("B2"). Значение
Если InStr (1, состояние, подстрока, vbTextCompare)> 0, то
Диапазон ("C2"). Значение = "Найдено"
Еще
Диапазон ("C2"). Значение = "Не найдено"
Конец, если

Результат при нажатии кнопки команды на листе:

Объяснение: показанная выше функция Instr имеет 4 аргумента. Чтобы выполнить поиск без учета регистра, всегда указывайте начальную позицию (первый аргумент) и используйте vbTextCompare (четвертый аргумент).

Вы поможете развитию сайта, поделившись страницей с друзьями

wave wave wave wave wave