V VBA lahko primerjate dva niza z uporabo Všeč mi je operator preveri ujemanje nizov. V tej vadnici se boste naučili uporabljati ta operater z različnimi vzorci.
Če se želite naučiti primerjati nize v VBA, kliknite tukaj: VBA Primerjaj nize - StrComp
Če se želite naučiti uporabljati primerjalne operaterje, kliknite tukaj: Primerjalni operaterji VBA - ni enako & več
Uporaba operatorja Like za primerjavo dveh nizov
Z operaterjem Like lahko preverimo, ali se niz začne z določenim besedilom, ga vključuje itd. Privzeto je Všeč mi je operator primerja znake z uporabo binarne metode. To pomeni, da operater razlikuje velike in male črke. Če želite, da je razlika med velikimi in malimi črkami, morate navesti Možnost Primerjaj besedilo na vrhu modula. S to metodo se Všeč mi je operater meni, da sta "S" in "s" enaka znaka. V naših primerih bomo uporabili privzeto primerjavo, ki razlikuje med malimi in malimi črkami.
Če ujemanje obstaja, Všeč mi je operater posledično vrne True ali drugače False.
Najprej bomo pogledali preprost primer, kjer želimo preveriti, ali se naša nizna spremenljivka začne z gospod. Če želite to narediti, morate na konec ustreznega besedila postaviti zvezdico (*) (Gospod*). Tukaj je koda:
1234567891011121314 | Sub LikeDemo ()Dim strName As StringDim blnResult Kot BooleanstrName = "Gospod Michael James"Če strName kot "gospod*", potemblnResult = ResSicer pablnResult = FalseKonec ČeEnd Sub |
V tem primeru želimo preveriti, ali je niz strName se začne z gospod in v spremenljivki vrne vrednost True ali False blnResult.
Najprej določimo vrednost strName do Gospod Michael James:
1 | strName = "Gospod Michael James" |
Nato uporabimo Všeč mi je operator v stavku If:
12345 | Če strName kot "gospod*", potemblnResult = ResSicer pablnResult = FalseKonec Če |
Kot strName se začne z gospod, blnResult vrne True:
Slika 1. Z operaterjem Like preverite, ali se niz začne z določenimi znaki
Uporaba podobnega operaterja z različnimi vzorci ujemanja
Operater Like lahko preveri ujemanje dveh nizov na podlagi različnih vzorcev. Tu je seznam možnih vzorcev ujemanja:
Koda vzorca |
Vrsta ujemanja |
* | Ujema 0 ali več znakov |
? | Ujema se z enim samim znakom |
# | Ujema enomestno številko |
[znaki] | Ujema en sam znak s seznama znakov |
[A-Z] | Ujema se z vsemi velikimi črkami iz abecede |
[A-Za-z] | Ujema se s katerim koli znakom iz abecede |
[! znaki] | Ujema se z enim znakom, razen seznama znakov |
Zdaj lahko vidimo, kako uporabiti te vzorce v kodi. Tu je primer za več vzorcev:
Ujemanje enega znaka:
1234567 | strText1 = "ABCDE"Če strText1 Kot "AB? DE" PotemblnResult1 = ResSicer pablnResult1 = NeresničnoKonec Če |
Ujemanje z enomestno številko:
1234567 | strText2 = "AB7DE"Če strText2 Kot "AB#DE" PotemblnResult2 = ResSicer pablnResult2 = NeresničnoKonec Če |
Ujemanje vseh velikih črk iz abecede:
1234567 | strText3 = "ABCDE"Če strText3 Kot "AB [A-Z] DE" PotemblnResult3 = ResSicer pablnResult3 = NeresničnoKonec Če |
Ne ujema se z velikimi črkami iz abecede:
1234567 | strText4 = "AB7DE"Če strText4 Kot "AB [! A-Z] DE" PotemblnResult4 = ResSicer pablnResult4 = NeresničnoKonec Če |
Ujemanje katerega koli znaka iz abecede (velike ali male črke):
1234567 | strText5 = "ABcDE"Če strText5 Kot "AB [A-Za-z] DE" PotemblnResult5 = ResSicer pablnResult5 = NeresničnoKonec Če |
Ko izvedete kodo, lahko vidite, da je Všeč mi je operater vrne True in blnResult spremenljivke za vsako primerjavo:
Slika 2. Uporaba operaterja Like z različnimi vzorci ujemanja