Як використовувати символи підстановки у vba (з прикладами)
Ви можете використовувати оператор Like у VBA з такими вбудованими символами підстановки для пошуку певних шаблонів у рядках:
- * : відповідає будь-якій кількості символів
- ? : відповідає одному символу
- # : відповідає одній цифрі
- [] : відповідає будь-якому символу в діапазоні
У наступних прикладах показано, як використовувати ці символи підстановки на практиці.
Приклад 1: Використовуйте символ підстановки для пошуку підрядка
Припустімо, у колонці А є такий список продуктів:
Ми можемо створити такий макрос для пошуку «гарячого» підрядка в кожному рядку в стовпці A та відображення результатів у стовпці B:
Sub FindString()
Dim i As Integer
For i = 2 To 10
If Range(" A " & i) Like " *hot* " Then
Range(" B " & i) = " Contains hot "
Else
Range(" B " & i) = " Does Not Contain hot "
End If
Next i
End Sub
Коли ми запускаємо цей макрос, ми отримуємо такий результат:
Приклад 2. Використовуйте символ підстановки * для пошуку рядків, які закінчуються шаблоном
Припустімо, що у колонці A є такий список назв баскетбольних команд:
Ми можемо створити наступний макрос для пошуку рядків у стовпці A, які закінчуються на “ets”, і відображати результати в стовпці B:
Sub FindEndingString()
Dim i As Integer
For i = 2 To 10
If Range(" A " & i) Like " *ets " Then
Range(" B " & i) = " Ends in ets "
Else
Range(" B " & i) = " Does Not End in ets "
End If
Next i
End Sub
Коли ми запускаємо цей макрос, ми отримуємо такий результат:
Приклад 3: Використовуйте символ підстановки # для пошуку чисел
Припустимо, що у стовпці A є такий список рядків:
Ми можемо створити наступний макрос для пошуку рядків у стовпці A, що містять числа, і відображення результатів у стовпці B:
SubFindNumbers ()
Dim i As Integer
For i = 2 To 10
If Range(" A " & i) Like " *#* " Then
Range(" B " & i) = " Contains Numbers "
Else
Range(" B " & i) = " Does Not Contain Numbers "
End If
Next i
End Sub
Коли ми запускаємо цей макрос, ми отримуємо такий результат:
Приклад 4: використовуйте символ підстановки [] для пошуку кількох символів
Припустімо, що у колонці A є такий список назв баскетбольних команд:
Ми можемо створити наступний макрос для пошуку в стовпці A рядків, які містять r, s або t десь у назві команди, і відобразити результати в стовпці B:
Sub FindSpecificLetters()
Dim i As Integer
For i = 2 To 10
If Range(" A " & i) Like " *[rt]* " Then
Range(" B " & i) = " Contains r, s, or t "
Else
Range(" B " & i) = " Does Not Contain r, s or t "
End If
Next i
End Sub
Коли ми запускаємо цей макрос, ми отримуємо такий результат:
Примітка . Ви можете знайти повну документацію щодо символів узагальнення VBA тут .
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові завдання за допомогою VBA:
VBA: як підрахувати випадки появи символів у рядку
VBA: як перевірити, чи містить рядок інший рядок
VBA: як підрахувати клітинки з певним текстом