Vba: як перевірити, чи містить рядок інший рядок


Ви можете використовувати функцію Instr() у VBA, щоб перевірити, чи містить рядок інший рядок.

Ця функція використовує такий базовий синтаксис:

Instr(початок, рядок1, рядок2, …)

золото:

  • початок : Початкова позиція пошуку
  • string1 : Рядок для пошуку
  • string2 : рядок, який ви намагаєтеся знайти

У наступному прикладі показано, як використовувати цю функцію на практиці.

Приклад: використовуйте VBA, щоб перевірити, чи рядок містить інший рядок

Припустімо, у Excel є такий набір даних, який містить інформацію про різні баскетбольні команди:

Тепер припустімо, що ми хочемо перевірити, чи кожен рядок у стовпці Team містить «avs» десь у рядку.

Ми можемо використати такий синтаксис у VBA, щоб перевірити, чи кожен рядок у стовпці Team містить “avs”, і, якщо так, повернути весь рядок у стовпцях D і E:

 Sub StringContains()
Dim i As Integer , i_num As Integer

For i = 2 To 9
    If InStr(1, LCase(Range(" A " & i)), " avs ") <> 0 Then
        i_num = i_num + 1
        Range(" D " & i_num & " :E " & i_num) = Range(" A " & i & " :B " & i).Value
    End If
Next i
End Sub

Коли ми запускаємо цей макрос, ми отримуємо такий результат:

Зауважте, що кожен рядок, який містить рядок «avs» десь у стовпці «Команда», повертається в стовпці D і E.

У цьому прикладі лише дві команди (Mavs і Cavs) містили «avs» у стовпці «Команда».

Щоб шукати інший рядок, просто замініть “avs” у коді вище на рядок за вашим вибором.

Примітка №1: у коді ми використали For i = 2–9, оскільки клітинки A2–A9 містили рядки, які нас цікавили. Ви можете змінити цей діапазон залежно від діапазону комірок, який ви шукаєте.

Примітка №2 : Ви можете знайти повну документацію функції Instr() у VBA тут .

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові завдання за допомогою VBA:

VBA: як підрахувати випадки появи символів у рядку
VBA: як підрахувати кількість рядків у діапазоні
VBA: як обчислити середнє значення діапазону

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *