VBA galite palyginti dvi eilutes naudodami Kaip operatorius, kad patikrintų eilučių atitikimą. Šioje pamokoje sužinosite, kaip naudoti šį operatorių naudojant skirtingus modelius.
Jei norite sužinoti, kaip palyginti stygas VBA, spustelėkite čia: VBA Compare Strings - StrComp
Jei norite sužinoti, kaip naudoti palyginimo operatorius, spustelėkite čia: VBA palyginimo operatoriai - nelygu ir daugiau
Panašaus operatoriaus naudojimas dviem eilutėms palyginti
Naudodami operatorių „Like“, galime patikrinti, ar eilutė prasideda konkrečiu tekstu, ar apima jį ir tt Pagal numatytuosius nustatymus Kaip operatorius lygina simbolius dvejetainiu metodu. Tai reiškia, kad operatorius skiria didžiąsias ir mažąsias raides. Jei norite, kad jis neskirtų didžiųjų ir mažųjų raidžių, turite įdėti Parinktis Lyginti tekstą modulio viršuje. Naudojant šį metodą ,. Kaip operatorius laiko „S“ ir „s“ tuos pačius simbolius. Savo pavyzdžiuose naudosime numatytąjį, didžiųjų ir mažųjų raidžių palyginimą.
Jei sutapimas egzistuoja, Kaip dėl to operatorius grąžina „True“ arba kitaip „False“.
Pirma, mes pažvelgsime į paprastą pavyzdį, kuriame norime patikrinti, ar mūsų eilutės kintamasis prasideda Ponas. Norėdami tai padaryti, atitinkamo teksto pabaigoje turite įdėti žvaigždutę (*) (Ponas*). Čia yra kodas:
1234567891011121314 | Sub LikeDemo ()Dim strName As StringDim blnResult As BooleanstrName = "Ponas Michaelas Jamesas"Jei strName Kaip „Ponas*“, tadablnResult = TiesaKitasblnResult = NetiesaPabaiga JeiPabaiga Sub |
Šiame pavyzdyje norime patikrinti, ar eilutė strName prasideda nuo Ponas ir kintamajame grąžinkite „True“ arba „False“ blnResult.
Pirmiausia nustatome reikšmę strName į Ponas Michaelas Jamesas:
1 | strName = "Ponas Michaelas Jamesas" |
Tada mes naudojame Kaip operatorius If sakinyje:
12345 | Jei strName Kaip „Ponas*“, tadablnResult = TiesaKitasblnResult = NetiesaPabaiga Jei |
Kaip strName prasideda nuo Ponas, blnResult grąžina tiesa:
Vaizdas 1. Naudodami „Like“ operatorių patikrinkite, ar eilutė prasideda tam tikrais simboliais
Panašaus operatoriaus naudojimas su skirtingais atitinkančiais modeliais
„Like“ operatorius gali patikrinti dviejų eilučių atitikimą pagal skirtingus modelius. Čia yra galimų atitikimo modelių sąrašas:
Šablono kodas |
Derinimo tipas |
* | Atitinka 0 ar daugiau simbolių |
? | Atitinka vieną simbolį |
# | Atitinka vieną skaitmenį |
[simboliai] | Atitinka vieną simbolį iš simbolių sąrašo |
[A – Z] | Atitinka bet kokias didžiąsias abėcėlės raides |
[A-Za-z] | Atitinka bet kurį abėcėlės simbolį |
[! simboliai] | Atitinka vieną simbolį, išskyrus simbolių sąrašą |
Dabar galime pamatyti, kaip naudoti šiuos kodo modelius. Štai kelių modelių pavyzdys:
Atitinka vieną simbolį:
1234567 | strText1 = "ABCDE"Jei strText1 patinka „AB? DE“, tadablnResult1 = TiesaKitasblnResult1 = NetiesaPabaiga Jei |
Vieno skaitmens atitikimas:
1234567 | strText2 = "AB7DE"Jei strText2 patinka „AB#DE“, tadablnResult2 = TiesaKitasblnResult2 = NetiesaPabaiga Jei |
Bet kokių didžiųjų raidžių atitikimas abėcėlėje:
1234567 | strText3 = "ABCDE"Jei strText3 patinka „AB [A-Z] DE“, tadablnResult3 = TiesaKitasblnResult3 = NetiesaPabaiga Jei |
Neatitinka jokių didžiųjų abėcėlės simbolių:
1234567 | strText4 = "AB7DE"Jei strText4 patinka „AB [! A-Z] DE“, tadablnResult4 = TiesaKitasblnResult4 = NetiesaPabaiga Jei |
Bet koks abėcėlės simbolis (didžiosios arba mažosios):
1234567 | strText5 = "ABcDE"Jei strText5 patinka „AB [A-Za-z] DE“, tadablnResult5 = TiesaKitasblnResult5 = NetiesaPabaiga Jei |
Vykdydami kodą galite matyti, kad Kaip operatorius grąžina „True in“ blnResult kintamieji kiekvienam palyginimui:
2 paveikslas. Naudojant „Like“ operatorių su skirtingais atitikimo modeliais