Простая функция 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 (четвертый аргумент).