VBA Like

VBA Like Operator

Podobnie jak operator w VBA i jest to operator porównania, który porównuje dany ciąg jako argument w zbiorze ciągów i pasuje do wzorca, jeśli wzorzec jest dopasowany, to uzyskany wynik jest prawdziwy, a jeśli wzorzec nie pasuje, to uzyskany wynik jest fałszywy, jest to operator wbudowany w VBA.

Operator „LIKE” jest najczęściej niedostatecznie wykorzystywanym operatorem pomimo jego wspaniałego zastosowania. Nie widziałem wielu ludzi, którzy używają tego operatora w pełnym zakresie w swoim kodowaniu, tak naprawdę jestem jednym z nich, którzy nie używają tego operatora dość często. Operator „VBA LIKE” pozwala nam dopasować wzorzec ciągu do pełnego ciągu. Używając operatora VBA LIKE, możemy porównać dwa ciągi z podanym wzorem. Możemy sprawdzić, czy ciąg zawiera podciąg w VBA lub możemy również sprawdzić, czy ciąg zawiera określony format. Jeśli wzorzec pasuje do ciągu, operator VBA LIKE zwraca TRUE lub FALSE.

Podczas dopasowywania łańcuchów musimy używać symboli wieloznacznych do określonego wzoru. Poniżej znajdują się symbole wieloznaczne, których używamy w operatorze VBA LIKE.

  • Znak zapytania (?): Służy do dopasowania dowolnego znaku z ciągu. Na przykład, jeśli mamy ciąg „CAT”, a wzorzec to „C? T”, wówczas operator VBA LIKE zwraca wartość PRAWDA. Jeśli ciąg to „CATCH, a wzorce to„ C? T ”, operator VBA LIKE zwraca FALSE.
  • Gwiazdka (*): oznacza zero lub więcej znaków. Na przykład, jeśli ciąg ma wartość „Good”, a wzorzec to „G ** d”, operator VBA LIKE zwraca wartość TRUE.
  • Nawiasy ([]): dopasowuje dowolny pojedynczy znak określony w nawiasach.
  • [Char-Char]: dopasowuje dowolny pojedynczy znak z zakresu Char-Char.
  • [! Znaki]: pasuje do każdego pojedynczego znaku, którego nie ma na liście.
  • [! Char-Char]: dopasowuje każdy pojedynczy znak spoza zakresu Char-Char.

Przykłady operatora VBA LIKE

Zobaczmy teraz kilka przykładów operatora VBA LIKE.

Możesz pobrać ten szablon VBA Like Excel tutaj - VBA Like Excel Template

Przykład 1 - ze znakiem zapytania

Kod:

 Sub QuestionMark_Example1 () Dim k As String k = "Good" Jeśli k Like "Go? D" Then MsgBox "Yes" Else MsgBox "No" End If End Sub 

W powyższym kodzie podaliśmy ciąg jako „Good”, a wzorzec to „Go? D”. Ponieważ znak zapytania może pasować do pojedynczego znaku, wynik będzie oznaczony jako „Tak”.

Teraz zmienię napis na „Dzień dobry”.

Kod:

 Sub QuestionMark_Example1 () Dim k As String k = "Good Morning" If k Like "Go? D" Then MsgBox "Yes" Else MsgBox "No" End If End Sub 

W tym przypadku pokaże „Nie”, ponieważ dodaliśmy jeszcze jedno słowo do ciągu, np. Rano. Aby dopasować dowolną liczbę znaków, musimy użyć gwiazdki.

Przykład 2 - z gwiazdką

Kod:

 Sub QuestionMark_Example2 () Dim k As String k = "Good Morning" If k Like "* Good *" Then MsgBox "Yes" Else MsgBox "No" End If End Sub 

W powyższym przykładzie dodałem dwie gwiazdki przed i po znaku „* Good *”. Spowoduje to dopasowanie słowa „Good” w ciągu „Good Morning” i zwróci „Yes”.

Przykład # 3 - z nawiasami []

Kod:

 Sub QuestionMark_Example3 () Dim k As String k = "Good Morning" If k Like "* [M] *" Then MsgBox "Yes" Else MsgBox "No" End If End Sub 

Powyższy kod odpowiada pojedynczej literze wymienionej w nawiasie „M” i zwraca wynik jako Tak.

Przykład 4 - z nawiasami i alfabetami [AZ]

Kod:

 Sub QuestionMark_Example4 () Dim k As String k = "Good Morning" If k Like "* [AD] *" Then MsgBox "Yes" Else MsgBox "No" End If End Sub 

Powyżej wspomniałem o znakach do dopasowania od A do D.

Będzie to powrót „nie”, ponieważ nie istnieją żadne znaki od A do D w ciągu „dzień dobry” .

Teraz zmienię wzór na [AH]

Kod:

 Sub QuestionMark_Example4 () Dim k As String k = "Good Morning" If k Like "* [AH] *" Then MsgBox "Yes" Else MsgBox "No" End If End Sub 

To zwróci „Tak”, ponieważ od A do H mamy znak „G” w ciągu „Dzień dobry”

W ten sposób możemy użyć operatora VBA „LIKE”, aby dopasować dowolny ciąg z wzorca do znaków wieloznacznych.