Vo VBA môžete porovnávať dva reťazce pomocou Páči sa mi to operátor skontroluje zhodu reťazcov. V tomto návode sa naučíte používať tento operátor s rôznymi vzormi.
Ak sa chcete dozvedieť, ako porovnávať struny vo VBA, kliknite sem: Porovnanie strún VBA - StrComp
Ak sa chcete dozvedieť, ako používať porovnávacie operátory, kliknite sem: Porovnávacie operátory VBA - nerovná sa a ďalšie
Použitie podobného operátora na porovnanie dvoch reťazcov
Pomocou operátora Like môžeme skontrolovať, či reťazec začína konkrétnym textom, obsahuje ho atď. Štandardne je Páči sa mi to operátor porovnáva znaky pomocou binárnej metódy. To znamená, že operátor rozlišuje veľké a malé písmena. Ak chcete, aby nerozlišoval malé a veľké písmená, musíte uviesť Možnosť Porovnať text v hornej časti modulu. Použitím tejto metódy Páči sa mi to operátor považuje „S“ a „s“ za rovnaké znaky. V našich príkladoch použijeme predvolené porovnanie rozlišujúce malé a veľké písmená.
Ak zhoda existuje, prípona Páči sa mi to operátor v dôsledku toho vráti hodnotu True alebo False v opačnom prípade.
Najprv sa pozrieme na jednoduchý príklad, kde chceme skontrolovať, či naša reťazcová premenná začína na Pán. Na tento účel musíte na koniec zodpovedajúceho textu vložiť hviezdičku (*) (Pán*). Tu je kód:
1234567891011121314 | Sub LikeDemo ()Dim strName ako reťazecDim blnVýsledok ako booleovskýstrName = "Pán Michael James"Ak strName ako „Pán*“ PotomblnResult = PravdaInakblnResult = FalseKoniec AkKoniec pod |
V tomto prípade chceme skontrolovať, či je reťazec strName zacina s Pán a vráťte v premennej hodnotu True alebo False blnVýsledok.
Najprv nastavíme hodnotu strName do Pán Michael James:
1 | strName = "Pán Michael James" |
Potom použijeme Páči sa mi to operátor vo vyhlásení If:
12345 | Ak strName ako „Pán*“ PotomblnResult = PravdaInakblnResult = FalseKoniec Ak |
Ako strName zacina s Pán, blnVýsledok vráti True:
Obrázok 1. Pomocou operátora Páči sa mi zistí, či reťazec začína určitými znakmi
Použitie operátora Like s rôznymi zhodnými vzormi
Operátor Like môže kontrolovať zhodu dvoch reťazcov na základe rôznych vzorov. Tu je zoznam možných zodpovedajúcich vzorov:
Kód vzoru |
Typ zhody |
* | Zodpovedá 0 alebo viac znakom |
? | Zodpovedá jednému znaku |
# | Zodpovedá jednej číslici |
[znaky] | Zhoduje sa s jedným znakom zo zoznamu znakov |
[A-Z] | Zodpovedá ľubovoľnému veľkému písmenu z abecedy |
[A-Za-z] | Zodpovedá ľubovoľnému znaku z abecedy |
[! chars] | Zhoduje sa s jedným znakom bez zoznamu znakov |
Teraz vidíme, ako tieto vzory použiť v kóde. Tu je príklad pre viac vzorov:
Zhoda s jedným znakom:
1234567 | strText1 = "ABCDE"Ak sa strText1 páči „AB? DE“, potomblnResult1 = PravdaInakblnResult1 = nepravdaKoniec Ak |
Zodpovedajúce jednej číslici:
1234567 | strText2 = "AB7DE"Ak sa strText2 páči „AB#DE“, potomblnResult2 = PravdaInakblnResult2 = nepravdaKoniec Ak |
Zodpovedajúce akékoľvek veľké písmena z abecedy:
1234567 | strText3 = "ABCDE"Ak strText3 ako „AB [A-Z] DE“, potomblnResult3 = PravdaInakblnResult3 = nepravdaKoniec Ak |
Nezodpovedá žiadnemu veľkému písmenu z abecedy:
1234567 | strText4 = "AB7DE"Ak sa strText4 páči „AB [! A-Z] DE“, potomblnResult4 = PravdaInakblnResult4 = nepravdaKoniec Ak |
Zodpovedajúci ľubovoľný znak z abecedy (veľké alebo malé písmená):
1234567 | strText5 = "ABcDE"Ak strText5 ako „AB [A-Za-z] DE“ PotomblnResult5 = PravdaInakblnResult5 = nepravdaKoniec Ak |
Keď spustíte kód, uvidíte, že Páči sa mi to operátor vráti hodnotu True v blnVýsledok premenné pre každé porovnanie:
Obrázok 2. Použitie operátora Páči sa mi s rôznymi zhodnými vzormi