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: як обчислити середнє значення діапазону