U VBA možete usporediti dva niza pomoću Kao operator za provjeru podudarnosti nizova. U ovom ćete vodiču naučiti kako koristiti ovaj operator s različitim uzorcima.
Ako želite naučiti uspoređivati nizove u VBA, kliknite ovdje: VBA Usporedi nizove - StrComp
Ako želite naučiti kako koristiti operatore za usporedbu, kliknite ovdje: VBA Operatori za usporedbu - nije jednako & više
Upotreba sličnog operatora za usporedbu dva niza
Pomoću operatora Like možemo provjeriti počinje li niz s određenim tekstom, uključuje li ga itd. Prema zadanim postavkama Kao operator uspoređuje znakove pomoću binarne metode. To znači da operator razlikuje velika i mala slova. Ako želite da ne razlikuje velika i mala slova, morate staviti Opcija Usporedi tekst na vrhu vašeg modula. Koristeći ovu metodu, Kao operator smatra da su "S" i "s" isti znakovi. U našim primjerima koristit ćemo zadanu usporedbu koja razlikuje mala i velika slova.
Ako podudaranje postoji, Kao operator vraća True kao rezultat, ili False u protivnom.
Prvo ćemo pogledati jednostavan primjer gdje želimo provjeriti počinje li naša nizova varijabla Gosp. Da biste to učinili, morate staviti zvjezdicu (*) na kraj odgovarajućeg teksta (G.*). Evo koda:
1234567891011121314 | Sub LikeDemo ()Dim strName As StringDim blnResult Kao BooleanstrName = "Gospodin Michael James"Ako strName poput "Mr*" TadablnResult = IstinaDrugoblnResult = NetačnoZavrši akoKraj podm |
U ovom primjeru želimo provjeriti je li string strName počinje sa Gosp i u varijablu vratiti True ili False blnResult.
Prvo smo postavili vrijednost strName do G. Michael James:
1 | strName = "Gospodin Michael James" |
Zatim koristimo Kao operator u naredbi If:
12345 | Ako strName poput "Mr*" TadablnResult = IstinaDrugoblnResult = NetačnoZavrši ako |
Kao što je strName počinje sa Gosp, blnResult vraća True:
Slika 1. Pomoću operatora Like provjerite počinje li niz s određenim znakovima
Korištenje sličnog operatora s različitim uzorcima podudaranja
Operator Like može provjeriti podudarnost dva niza na temelju različitih uzoraka. Evo popisa mogućih odgovarajućih uzoraka:
Kod uzorka |
Vrsta podudaranja |
* | Odgovara 0 ili više znakova |
? | Odgovara jednom znaku |
# | Odgovara jednoj znamenci |
[znakovi] | Podudara se s jednim znakom s popisa znakova |
[A-Z] | Odgovara bilo kojem velikom slovu iz abecede |
[A-Za-z] | Odgovara bilo kojem znaku iz abecede |
[! znakovi] | Podudara se s jednim znakom isključujući popis znakova |
Sada možemo vidjeti kako koristiti te uzorke u kodu. Evo primjera za više uzoraka:
Podudaranje jednog znaka:
1234567 | strText1 = "ABCDE"Ako strText1 poput "AB? DE" TadablnResult1 = IstinaDrugoblnResult1 = NetačnoZavrši ako |
Podudaranje jedne znamenke:
1234567 | strText2 = "AB7DE"Ako strText2 Kao "AB#DE" TadablnResult2 = IstinaDrugoblnResult2 = NetačnoZavrši ako |
Podudaranje bilo kojeg velikog slova iz abecede:
1234567 | strText3 = "ABCDE"Ako strText3 Kao "AB [A-Z] DE" ZatimblnResult3 = IstinaDrugoblnResult3 = NetačnoZavrši ako |
Ne podudaraju se s velikim slovima iz abecede:
1234567 | strText4 = "AB7DE"Ako strText4 Kao "AB [! A-Z] DE" TadablnResult4 = IstinaDrugoblnResult4 = NetačnoZavrši ako |
Podudaranje bilo kojeg znaka iz abecede (velika ili mala slova):
1234567 | strText5 = "ABcDE"Ako strText5 Kao "AB [A-Za-z] DE" TadablnResult5 = IstinaDrugoblnResult5 = NetačnoZavrši ako |
Kada izvršite kôd, možete vidjeti da je Kao operator vraća True u blnResult varijable za svaku usporedbu:
Slika 2. Korištenje operatora Like s različitim uzorcima podudaranja