Как использовать подстановочные знаки в vba (с примерами)
Вы можете использовать оператор Like в VBA со следующими встроенными подстановочными знаками для поиска определенных шаблонов в строках:
- * : Соответствует любому количеству символов.
- ? : Соответствует одному символу
- # : соответствует одной цифре
- [] : соответствует любому символу в пределах диапазона
Следующие примеры показывают, как использовать эти подстановочные знаки на практике.
Пример 1. Используйте *Wildcard для поиска подстроки
Предположим, у нас есть следующий список продуктов в столбце А:
Мы можем создать следующий макрос для поиска «горячей» подстроки в каждой строке в столбце 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: как подсчитать ячейки с определенным текстом