W VBA możesz porównać dwa ciągi za pomocą Lubić operator, aby sprawdzić dopasowanie ciągów. W tym samouczku dowiesz się, jak używać tego operatora z różnymi wzorcami.
Jeśli chcesz dowiedzieć się, jak porównywać ciągi znaków w VBA, kliknij tutaj: VBA Compare Strings - StrComp
Jeśli chcesz dowiedzieć się, jak korzystać z operatorów porównania, kliknij tutaj: Operatory porównania VBA - nierówne i więcej
Używanie operatora Like do porównywania dwóch ciągów
Za pomocą operatora Like możemy sprawdzić, czy ciąg zaczyna się od określonego tekstu, czy go zawiera itp. Domyślnie Lubić operator porównuje znaki przy użyciu metody Binary. Oznacza to, że operator rozróżnia wielkość liter. Jeśli chcesz, aby wielkość liter nie była rozróżniana, musisz umieścić Opcja Porównaj tekst u góry modułu. Korzystając z tej metody, Lubić operator uważa „S” i „s” za te same znaki. W naszych przykładach użyjemy domyślnego porównania uwzględniającego wielkość liter.
Jeśli dopasowanie istnieje, Lubić operator zwraca True w wyniku lub False w przeciwnym razie.
Najpierw przyjrzymy się prostemu przykładowi, w którym chcemy sprawdzić, czy nasza zmienna łańcuchowa zaczyna się od Pan. Aby to zrobić, musisz umieścić gwiazdkę (*) na końcu pasującego tekstu (Pan*). Oto kod:
1234567891011121314 | Sub LikeDemo()Dim strName jako ciągDim blnResult As BooleanstrName = "Pan Michael James"Jeśli strName Like "Pan*" WtedyblnWynik = PrawdaW przeciwnym razieblnWynik = FałszZakończ, jeśliNapis końcowy |
W tym przykładzie chcemy sprawdzić, czy string strNazwa Zaczyna się z Pan i zwróć w zmiennej True lub False blnWynik.
Najpierw ustalamy wartość strNazwa do Pan Michael James:
1 | strName = "Pan Michael James" |
Następnie używamy Lubić operator w instrukcji If:
12345 | Jeśli strName Like "Pan*" WtedyblnWynik = PrawdaW przeciwnym razieblnWynik = FałszZakończ, jeśli |
Jako strNazwa Zaczyna się z Pan, ten blnWynik zwraca True:
Obraz 1. Użycie operatora Like do sprawdzenia, czy ciąg zaczyna się od określonych znaków
Używanie operatora Like z różnymi wzorcami dopasowania
Operator Like może sprawdzić dopasowanie dwóch ciągów na podstawie różnych wzorców. Oto lista możliwych pasujących wzorców:
Kod wzoru |
Rodzaj dopasowania |
* | Dopasowuje 0 lub więcej znaków |
? | Dopasowuje jeden znak |
# | Dopasowuje jedną cyfrę |
[znaki] | Dopasowuje pojedynczy znak z listy znaków |
[A-Z] | Dopasowuje dowolną wielką literę z alfabetu |
[A-Za-z] | Dopasowuje dowolny znak z alfabetu |
[!znaki] | Dopasowuje pojedynczy znak z wyjątkiem listy znaków |
Teraz możemy zobaczyć, jak wykorzystać te wzorce w kodzie. Oto przykład dla wielu wzorów:
Dopasowanie pojedynczego znaku:
1234567 | strTekst1 = "ABCDE"Jeśli strText1 Jak "AB?DE" WtedyblnWynik1 = PrawdaW przeciwnym razieblnWynik1 = FałszZakończ, jeśli |
Dopasowanie pojedynczej cyfry:
1234567 | strTekst2 = "AB7DE"Jeśli strText2 Jak "AB#DE" WtedyblnWynik2 = PrawdaW przeciwnym razieblnWynik2 = FałszZakończ, jeśli |
Dopasowanie dowolnej wielkiej litery z alfabetu:
1234567 | strTekst3 = "ABCDE"Jeśli strText3 Jak "AB[A-Z]DE" WtedyblnWynik3 = PrawdaW przeciwnym razieblnWynik3 = FałszZakończ, jeśli |
Nie pasuje do żadnej wielkiej litery z alfabetu:
1234567 | strTekst4 = "AB7DE"Jeśli strText4 Jak "AB[!A-Z]DE" WtedyblnWynik4 = PrawdaW przeciwnym razieblnWynik4 = FałszZakończ, jeśli |
Dopasowanie dowolnego znaku z alfabetu (duże lub małe):
1234567 | strText5 = "ABcDE"Jeśli strText5 Jak "AB[A-Za-z]DE" WtedyblnWynik5 = PrawdaW przeciwnym razieblnWynik5 = FałszZakończ, jeśli |
Po wykonaniu kodu widać, że Lubić operator zwraca True w blnWynik zmienne dla każdego porównania:
Obraz 2. Używanie operatora Like z różnymi wzorcami dopasowania