Как использовать подстановочные знаки в 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: как подсчитать ячейки с определенным текстом

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *