VBA Like Operator

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

wave wave wave wave wave