Як використовувати символи підстановки у 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: як підрахувати клітинки з певним текстом

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

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