Instr в Excel VBA - Прості макроси Excel

Зміст

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

Використовуйте Інстр в Excel VBA щоб знайти позицію підрядка у рядку. Функція Instr досить універсальна.

Помістіть команду на робочому аркуші та додайте рядки коду нижче. Щоб виконати рядки коду, натисніть кнопку команди на аркуші.

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

За замовчуванням функція Instr починає пошук на початку рядка (позиція 1).

Код:

Яскравий стан як рядок
state = "Вірджинія"
MsgBox InStr (стан, "джин")

Результат:

Примітка: рядок "джин" знайдено в позиції 4.

Початкове положення

Друга нижче функція Instr починає пошук у позиції 7.

Код:

Яскравий стан як рядок
state = "Південна Кароліна"
MsgBox InStr (стан, "o")
MsgBox InStr (7, стан, "o")

Результат:

Пояснення: перша функція Instr знаходить рядок "o" у позиції 2. Друга функція Instr починає пошук у позиції 7 і знаходить рядок "o" у позиції 10.

Нуль

Функція Instr повертає 0, якщо рядок не знайдено (важливо, як ми побачимо далі).

Код:

Яскравий стан як рядок
state = "Флорида"
MsgBox InStr (стан, "нас")

Результат:

Висновок: рядок "нас" не знайдено.

Instr і If

Давайте створимо просту програму VBA, яка використовує Функція Instr.

Код:

Стан затемнення як рядок, підрядк як рядок
стан = Діапазон ("A2"). Значення
підрядок = Діапазон ("B2"). Значення
Якщо InStr (стан, підрядок)> 0 Тоді
Діапазон ("C2"). Значення = "Знайдено"
Інакше
Діапазон ("C2"). Значення = "Не знайдено"
Закінчити Якщо

Результат, коли ви натискаєте кнопку команди на аркуші:

Пояснення: рядок "outh" знайдено у позиції 2. Функція Instr повертає 2. В результаті Excel VBA поміщає рядок "Знайдено" у комірку C2.

Пошук без урахування регістру

За замовчуванням функція Instr виконує пошук з урахуванням регістру. Введіть рядок "dakota" у клітинку B2 і натисніть кнопку команди на аркуші.

Пояснення: рядок "dakota" не знайдено (перша буква не написана з великої літери). Функція Instr повертає 0. В результаті Excel VBA розміщує рядок "Not Found" у комірці C2.

Щоб виконати пошук без урахування регістру, оновіть код наступним чином:

Стан затемнення As String, підрядк As String
стан = Діапазон ("A2"). Значення
підрядок = Діапазон ("B2"). Значення
Якщо InStr (1, state, substring, vbTextCompare)> 0 Тоді
Діапазон ("C2"). Значення = "Знайдено"
Інакше
Діапазон ("C2"). Значення = "Не знайдено"
Закінчити Якщо

Результат, коли ви натискаєте кнопку команди на аркуші:

Пояснення: показана вище функція Instr має 4 аргументи. Щоб виконати пошук без урахування регістру, завжди вказуйте початкову позицію (перший аргумент) і використовуйте vbTextCompare (четвертий аргумент).

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

wave wave wave wave wave