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