Jak używać symboli wieloznacznych w vba (z przykładami)


Możesz użyć operatora Like w VBA z następującymi wbudowanymi symbolami wieloznacznymi, aby wyszukiwać określone wzorce w ciągach:

  • * : Dopasowuje dowolną liczbę znaków
  • ? : dopasowuje pojedynczy znak
  • # : odpowiada pojedynczej cyfrze
  • [] : dopasowuje dowolny znak w zasięgu

Poniższe przykłady pokazują, jak w praktyce używać tych symboli wieloznacznych.

Przykład 1: Użyj *Wildcard, aby wyszukać podciąg

Załóżmy, że w kolumnie A mamy następującą listę produktów spożywczych:

Możemy utworzyć następujące makro, aby wyszukać „gorący” podciąg w każdym ciągu w kolumnie A i wyświetlić wyniki w kolumnie 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

Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:

Przykład 2: Użyj znaku wieloznacznego *, aby wyszukać ciągi zakończone wzorcem

Załóżmy, że w kolumnie A mamy następującą listę nazw drużyn koszykarskich:

Możemy utworzyć następujące makro, aby szukać ciągów w kolumnie A kończących się na „ets” i wyświetlać wyniki w kolumnie 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

Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:

Przykład 3: Użyj symbolu wieloznacznego #, aby wyszukać liczby

Załóżmy, że w kolumnie A mamy następującą listę ciągów:

Możemy utworzyć następujące makro, aby szukać w kolumnie A ciągów zawierających liczby i wyświetlać wyniki w kolumnie 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

Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:

Przykład 4: Użyj symbolu wieloznacznego [], aby wyszukać wiele znaków

Załóżmy, że w kolumnie A mamy następującą listę nazw drużyn koszykarskich:

Możemy utworzyć następujące makro, aby przeszukać kolumnę A pod kątem ciągów zawierających r, s lub t gdzieś w nazwie zespołu i wyświetlić wyniki w kolumnie 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

Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:

Uwaga : Pełną dokumentację dotyczącą symboli wieloznacznych VBA można znaleźć tutaj .

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania przy użyciu języka VBA:

VBA: Jak liczyć wystąpienia znaków w ciągu
VBA: jak sprawdzić, czy ciąg zawiera inny ciąg
VBA: Jak liczyć komórki zawierające określony tekst

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *