VBA vám umožňuje porovnávat hodnoty pomocí porovnávacích operátorů. Pomocí těchto operátorů můžete porovnávat hodnoty a v důsledku toho vrátit logickou hodnotu True nebo False.
Seznam hlavních srovnávacích operátorů ve VBA
Nejprve si zobrazíme seznam porovnávacích operátorů, které lze použít v kódu VBA:
Operátor porovnání | Vysvětlení |
= |
Rovná |
Nerovná se |
|
> |
Větší než |
>= |
Větší než nebo rovno |
< |
Méně než |
<= |
Méně než nebo rovno |
Rovná
The Rovná operátor zkontroluje, zda jsou dvě hodnoty stejné, a vrátí hodnotu True nebo False. Zde je ukázkový kód:
123456789101112 | Dim intA jako celé čísloDim intB jako celé čísloDim blnVýsledek jako booleovskýintA = 5intB = 5Pokud intA = intB ThenblnResult = TrueJinýblnResult = FalseKonec If |
V tomto příkladu chceme zkontrolovat, zda intA je rovný intB. Pokud je to pravda, hodnota Boolean blnVýsledek bude pravdivé, v opačném případě bude nepravdivé.
Nejprve nastavíme hodnoty intA a intB do 5:
12 | intA = 5intB = 5 |
Poté použijeme = v příkazu If zkontrolovat, zda jsou hodnoty intA a intB jsou si rovni:
12345 | Pokud intA = intB ThenblnResult = TrueJinýblnResult = FalseKonec If |
Obě proměnné se rovnají 5, proto blnVýsledek vrací True:
Obrázek 1. Použití operátoru Equal To
Nerovná se
The Ne Rovná operátor zkontroluje, zda nejsou dvě hodnoty stejné, a vrátí hodnotu True nebo False. Zde je ukázkový kód:
Došlo k chybě. Prosím zkuste to znovu později. |
V tomto příkladu chceme zkontrolovat, zda intA není rovno intB. Pokud je to pravda, hodnota Boolean blnVýsledek bude pravdivé, v opačném případě bude nepravdivé.
Používáme v příkazu If zkontrolovat, zda jsou hodnoty intA a intB jsou rozdílní:
12345 | Pokud intA intB ThenblnResult = TrueJinýblnResult = FalseKonec If |
Hodnota intA je 5 a hodnota intB je 6, proměnné nejsou stejné, proto blnVýsledek vrací True:
Obrázek 2. Použití operátoru Not Equal To
Větší než
The Větší než operátor zkontroluje, zda je první hodnota větší než druhá a vrátí hodnotu True nebo False. Zde je ukázkový kód:
123456789101112 | Dim intA jako celé čísloDim intB jako celé čísloDim blnVýsledek jako booleovskýintA = 6intB = 5Pokud intA> intB ThenblnResult = TrueJinýblnResult = FalseKonec If |
V tomto příkladu chceme zkontrolovat, zda intA je větší než intB. Pokud je to pravda, hodnota Boolean blnVýsledek bude pravdivé, v opačném případě bude nepravdivé.
Kromě toho používáme > operátor v příkazu If, aby zkontroloval, zda je hodnota intA je větší než intB:
12345 | Pokud intA> intB ThenblnResult = TrueJinýblnResult = FalseKonec If |
Na závěr, jakointA je větší než intB, blnVýsledek vrací True:
Obrázek 3. Použití operátoru Greater Than
Větší než nebo rovno
The Větší než nebo rovno operátor zkontroluje, zda je první hodnota větší nebo rovna druhé hodnotě, a vrátí hodnotu True nebo False. Zde je ukázkový kód:
123456789101112 | Dim intA jako celé čísloDim intB jako celé čísloDim blnVýsledek jako booleovskýintA = 5intB = 5Pokud intA> = intB ThenblnResult = TrueJinýblnResult = FalseKonec If |
V tomto příkladu chceme zkontrolovat, zda intA je větší nebo rovno intB. Pokud je to pravda, hodnota Boolean blnVýsledek bude pravdivé, v opačném případě bude nepravdivé.
Používáme>= v příkazu If zkontrolovat, zda je hodnota intA je větší nebo rovno intB:
12345 | Pokud intA> = intB ThenblnResult = TrueJinýblnResult = FalseKonec If |
Na závěr, protože obě proměnné se rovnají 5, bude blnVýsledek vrací True:
Obrázek 4. Použití operátoru Greater Than nebo Equal To
Méně než
The Méně než operátor zkontroluje, zda je první hodnota menší než druhá a vrátí hodnotu True nebo False. Zde je ukázkový kód:
123456789101112 | Dim intA jako celé čísloDim intB jako celé čísloDim blnVýsledek jako booleovskýintA = 5intB = 6Pokud intA <intB ThenblnResult = TrueJinýblnResult = FalseKonec If |
V tomto příkladu chceme zkontrolovat, zda intA je méně než intB. Pokud je to pravda, hodnota Boolean blnVýsledek bude pravdivé, v opačném případě bude nepravdivé.
Používáme < v příkazu If zkontrolovat, zda je hodnota intA je méně než intB:
12345 | Pokud intA <intB ThenblnResult = TrueJinýblnResult = FalseKonec If |
Tak jako intA je méně než intB, blnVýsledek vrací True:
Obrázek 5. Použití operátoru Méně než
Méně než nebo rovno
The Méně než nebo Rovná operátor zkontroluje, zda je první hodnota menší nebo rovna, a vrátí hodnotu True nebo False. Zde je ukázkový kód:
123456789101112 | Dim intA jako celé čísloDim intB jako celé čísloDim blnVýsledek jako booleovskýintA = 5intB = 5Pokud intA <= intB ThenblnResult = TrueJinýblnResult = FalseKonec If |
V tomto příkladu chceme zkontrolovat, zda intA je menší nebo roven intB. Pokud je to pravda, hodnota Boolean blnVýsledek bude pravdivé, v opačném případě bude nepravdivé.
Používáme <= v příkazu If zkontrolovat, zda je hodnota intA je menší nebo roven intB:
12345 | Pokud intA <= intB ThenblnResult = TrueJinýblnResult = FalseKonec If |
Na závěr, protože obě proměnné se rovnají 5, bude blnVýsledek vrací True:
Obrázek 6. Použití operátoru Less Than nebo Equal To
Je operátor
Is Operator testuje, zda dvě objektové proměnné obsahují stejný objekt:
12345678910111213 | Sub CompareObjects ()Dim ws1 jako pracovní list, ws2 jako pracovní listSada ws1 = Listy ("List1")Nastavit ws2 = listy ("list2")Pokud ws1 Is ws2 ThenMsgBox "Stejné WS"JinýMsgBox „Různé WS“Konec IfEnd Sub |
Jako operátor
Operátor Like může být použit k nalezení nepřesných shod textu. Tento příklad otestuje, zda řetězec začíná „Mr.“
1234567891011121314 | Sub LikeDemo ()Dim strName As StringDim blnVýsledek jako booleovskýstrName = "Pan Michael James"Pokud strName jako „Pan*“ TakblnResult = TrueJinýblnResult = FalseKonec IfEnd Sub |
Pokud se chcete dozvědět, jak porovnávat řetězce, klikněte sem: VBA Porovnání řetězců - StrComp
Pokud se chcete naučit používat porovnávací operátory, klikněte sem: Logické operátory VBA