VBA vám umožňuje porovnávať hodnoty pomocou porovnávacích operátorov. Použitím týchto operátorov môžete porovnávať hodnoty a v dôsledku toho vrátiť logickú hodnotu True alebo False.
Zoznam hlavných operátorov porovnávania vo VBA
Najprv zobrazíme zoznam porovnávacích operátorov, ktoré je možné použiť v kóde VBA:
Operátor porovnávania | Vysvetlenie |
= |
Rovná |
Nie je to rovnaké |
|
> |
Väčší než |
>= |
Väčší alebo rovný |
< |
Menej ako |
<= |
Menej ako alebo rovno |
Rovná
The Rovná operátor skontroluje, či sú dve hodnoty rovnaké, a vráti hodnotu True alebo False. Tu je ukážkový kód:
123456789101112 | Dim intA ako celé čísloDim intB ako celé čísloDim blnVýsledok ako booleovskýintA = 5intB = 5Ak intA = intB PotomblnResult = PravdaInakblnResult = FalseKoniec Ak |
V tomto prípade chceme skontrolovať, či intA rovná sa intB. Ak je to pravda, hodnota Boolean blnVýsledok bude to pravda, v opačnom prípade to bude nepravda.
Najprv nastavíme hodnoty intA a intB do 5:
12 | intA = 5intB = 5 |
Potom použijeme = operátor v príkaze If skontrolovať, či sú hodnoty intA a intB sú rovnaké:
12345 | Ak intA = intB PotomblnResult = PravdaInakblnResult = FalseKoniec Ak |
Obe premenné sa rovnajú 5, preto blnVýsledok vráti True:
Obrázok 1. Použitie operátora Equal To
Nie je to rovnaké
The Nie Rovná operátor skontroluje, či sú dve hodnoty nerovnaké, a vráti hodnotu True alebo False. Tu je ukážkový kód:
Došlo k chybe. Skúste neskôr prosím. |
V tomto prípade chceme skontrolovať, či intA sa nerovná intB. Ak je to pravda, hodnota Boolean blnVýsledok bude to pravda, v opačnom prípade to bude nepravda.
Používame operátor v príkaze If skontrolovať, či sú hodnoty intA a intB sú rôzne:
12345 | Ak intA intB PotomblnResult = PravdaInakblnResult = FalseKoniec Ak |
Hodnota intA je 5 a hodnota intB je 6, premenné nie sú rovnaké, preto blnVýsledok vráti True:
Obrázok 2. Použitie operátora Nie je rovnaké
Väčší než
The Väčší než operátor skontroluje, či je prvá hodnota väčšia ako druhá hodnota, a vráti hodnotu True alebo False. Tu je ukážkový kód:
123456789101112 | Dim intA ako celé čísloDim intB ako celé čísloDim blnVýsledok ako booleovskýintA = 6intB = 5Ak intA> intB PotomblnResult = PravdaInakblnResult = FalseKoniec Ak |
V tomto prípade chceme skontrolovať, či intA je väčší ako intB. Ak je to pravda, hodnota Boolean blnVýsledok bude to pravda, v opačnom prípade to bude nepravda.
Okrem toho používame > operátor vo výpise If, aby skontroloval, či je hodnota intA je väčší ako intB:
12345 | Ak intA> intB PotomblnResult = PravdaInakblnResult = FalseKoniec Ak |
Na záver, akointA je väčší ako intB, blnVýsledok vráti True:
Obrázok 3. Použitie operátora Greater Than
Väčší ako alebo rovný
The Väčší alebo rovný operátor skontroluje, či je prvá hodnota väčšia alebo rovná druhej hodnote, a vráti hodnotu True alebo False. Tu je ukážkový kód:
123456789101112 | Dim intA ako celé čísloDim intB ako celé čísloDim blnVýsledok ako booleovskýintA = 5intB = 5Ak intA> = intB PotomblnResult = PravdaInakblnResult = FalseKoniec Ak |
V tomto prípade chceme skontrolovať, či intA je väčšia alebo rovná intB. Ak je to pravda, hodnota Boolean blnVýsledok bude to pravda, v opačnom prípade to bude nepravda.
Používame>= operátor vo výpise If, aby skontroloval, či je hodnota intA je väčšia alebo rovná intB:
12345 | Ak intA> = intB PotomblnResult = PravdaInakblnResult = FalseKoniec Ak |
Na záver, pretože obe premenné sú rovné 5, bude blnVýsledok vráti True:
Obrázok 4. Použitie operátora Greater Than alebo Equal To
Menej ako
The Menej ako operátor skontroluje, či je prvá hodnota menšia ako druhá hodnota, a vráti hodnotu True alebo False. Tu je ukážkový kód:
123456789101112 | Dim intA ako celé čísloDim intB ako celé čísloDim blnVýsledok ako booleovskýintA = 5intB = 6Ak intA <intB PotomblnResult = PravdaInakblnResult = FalseKoniec Ak |
V tomto prípade chceme skontrolovať, či intA je menej než intB. Ak je to pravda, hodnota Boolean blnVýsledok bude to pravda, v opačnom prípade to bude nepravda.
Používame < operátor v príkaze If skontrolovať, či je hodnota intA je menej než intB:
12345 | Ak intA <intB PotomblnResult = PravdaInakblnResult = FalseKoniec Ak |
Ako intA je menej než intB, blnVýsledok vráti True:
Obrázok 5. Použitie operátora Menej ako
Menej ako alebo sa rovná
The Menej ako alebo Rovná operátor skontroluje, či je prvá hodnota menšia alebo rovná a vráti hodnotu True alebo False. Tu je ukážkový kód:
123456789101112 | Dim intA ako celé čísloDim intB ako celé čísloDim blnVýsledok ako booleovskýintA = 5intB = 5Ak intA <= intB PotomblnResult = PravdaInakblnResult = FalseKoniec Ak |
V tomto prípade chceme skontrolovať, či intA je menší alebo rovný intB. Ak je to pravda, hodnota Boolean blnVýsledok bude to pravda, v opačnom prípade to bude nepravda.
Používame <= operátor vo výpise If, aby skontroloval, či je hodnota intA je menší alebo rovný intB:
12345 | Ak intA <= intB PotomblnResult = PravdaInakblnResult = FalseKoniec Ak |
Na záver, pretože obe premenné sú rovné 5, bude blnVýsledok vráti True:
Obrázok 6. Používanie operátora Less Than alebo Equal To
Je operátor
Is Is Operator testuje, či dve objektové premenné obsahujú rovnaký objekt:
12345678910111213 | Podrovnané objekty ()Dim ws1 ako pracovný list, ws2 ako pracovný listNastaviť ws1 = listy („list1“)Nastaviť ws2 = listy („list2“)Ak ws1 je ws2 potomMsgBox „Rovnaké WS“InakMsgBox „Rôzne WS“Koniec AkKoniec pod |
Rovnako ako operátor
Operátor Like môže byť použitý na nájdenie nepresných zhod textov. Tento príklad otestuje, či reťazec začína reťazcom „Mr.“
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 |
Ak sa chcete dozvedieť, ako porovnávať struny, kliknite sem: Porovnanie strún VBA - StrComp
Ak sa chcete dozvedieť, ako používať porovnávacie operátory, kliknite sem: Logické operátory VBA