În VBA, puteți compara două șiruri folosind Ca operator pentru a verifica potrivirea șirurilor. În acest tutorial, veți învăța cum să utilizați acest operator cu diferite modele.
Dacă doriți să aflați cum să comparați șirurile în VBA, faceți clic aici: VBA Compare Strings - StrComp
Dacă doriți să aflați cum să utilizați operatori de comparație, faceți clic aici: Operatori de comparație VBA - Nu este egal cu și mai mult
Utilizarea operatorului Like pentru a compara două șiruri
Cu operatorul Like, putem verifica dacă un șir începe cu un anumit text, îl include etc. În mod implicit, Ca operatorul compară caractere folosind metoda binară. Aceasta înseamnă că operatorul este sensibil la majuscule și minuscule. Dacă doriți să faceți diferența de majuscule și minuscule, trebuie să puneți Opțiune Comparați textul în partea de sus a modulului dvs. Folosind această metodă, Ca operatorul consideră „S” și „s” aceleași caractere. În exemplele noastre, vom folosi comparația implicită, diferențiată de majuscule și minuscule.
Dacă există potrivire, Ca operatorul returnează True ca rezultat sau False în caz contrar.
În primul rând, vom analiza exemplul simplu în care vrem să verificăm dacă variabila noastră șir începe cu Domnul. Pentru a face acest lucru, trebuie să puneți un asterisc (*) la sfârșitul textului de potrivire (Domnul*). Iată codul:
1234567891011121314 | Sub LikeDemo ()Dim strName As StringDim blnResultat ca booleanstrName = "Domnul Michael James"Dacă strName Ca „Mr. *” AtunciblnResult = AdevăratAltfelblnResult = FalseEnd IfSfârșitul Sub |
În acest exemplu, vrem să verificăm dacă șirul strName începe cu Domnul și returnează True sau False în variabilă blnResult.
În primul rând, stabilim valoarea lui strName la Domnule Michael James:
1 | strName = "Domnul Michael James" |
Apoi folosim Ca operator în declarația If:
12345 | Dacă strName Ca „Mr. *” AtunciblnResult = AdevăratAltfelblnResult = FalseEnd If |
Dupa cum strName începe cu Domnul, blnResult returnează True:
Imagine 1. Folosind operatorul Like pentru a verifica dacă șirul începe cu anumite caractere
Utilizarea operatorului Like cu diferite modele de potrivire
Operatorul Like poate verifica potrivirea a două șiruri pe baza unor modele diferite. Iată lista posibilelor modele de potrivire:
Codul modelului |
Tipul de potrivire |
* | Se potrivește cu 0 sau mai multe caractere |
? | Se potrivește cu un singur personaj |
# | Se potrivește cu o singură cifră |
[caractere] | Potrivește un singur caracter dintr-o listă de caractere |
[A-Z] | Se potrivește cu orice caracter majuscul din alfabet |
[A-Za-z] | Se potrivește cu orice caracter din alfabet |
[! chars] | Se potrivește cu un singur caracter, cu excepția unei liste de caractere |
Acum putem vedea cum să folosim aceste modele în cod. Iată exemplul pentru mai multe modele:
Potrivirea unui singur caracter:
1234567 | strText1 = "ABCDE"Dacă strText1 Ca „AB? DE” AtunciblnResult1 = AdevăratAltfelblnResult1 = FalsEnd If |
Potrivirea unei singure cifre:
1234567 | strText2 = "AB7DE"Dacă strText2 Ca "AB # DE" AtunciblnResult2 = AdevăratAltfelblnResult2 = FalsEnd If |
Potrivirea oricărui caracter majuscul din alfabet:
1234567 | strText3 = "ABCDE"Dacă strText3 Ca „AB [A-Z] DE” AtunciblnResult3 = AdevăratAltfelblnResult3 = FalsEnd If |
Nu se potrivește cu niciun caracter majuscul din alfabet:
1234567 | strText4 = "AB7DE"Dacă strText4 Ca "AB [! A-Z] DE" AtunciblnResult4 = AdevăratAltfelblnResult4 = FalseEnd If |
Potrivirea oricărui caracter din alfabet (majuscule sau mici):
1234567 | strText5 = "ABcDE"Dacă strText5 Ca "AB [A-Za-z] DE" AtunciblnResult5 = AdevăratAltfelblnResult5 = FalseEnd If |
Când executați codul, puteți vedea că Ca operatorul returnează True in blnResult variabile pentru fiecare comparație:
Imaginea 2. Utilizarea operatorului Like cu diferite modele de potrivire