Logičtí operátoři VBA - OR, AND, XOR, NOT, IS, & LIKE

VBA vám umožňuje používat logické operátory A, Nebo, Ne, Xor porovnávat hodnoty. Operátoři jsou považováni za „booleovské“, což znamená, že v důsledku toho vracejí hodnotu True nebo False.

Pokud se chcete dozvědět, jak porovnávat řetězce, klikněte sem: VBA Porovnání řetězců - StrComp

Chcete -li se naučit používat srovnávací operátory, klikněte sem: Srovnávací operátory VBA - nerovná se a další

Pomocí And Logical Operator

The A logický operátor porovnává dvě nebo více podmínek. Pokud jsou splněny všechny podmínky, operátor vrátí True. Pokud alespoň jedna z podmínek není pravdivá, operátor vrátí False. Zde je příklad:

123456789101112 Dim intA jako celé čísloDim intB jako celé čísloDim blnVýsledek jako booleovskýintA = 5intB = 5Pokud intA = 5 And intB = 5 ThenblnResult = TrueJinýblnResult = FalseKonec If

V tomto příkladu chceme zkontrolovat, zda obojí intA a intB jsou rovny 5. 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 A operátor v příkazu If pro kontrolu, zda jsou hodnoty rovny 5:

12345 Pokud intA = 5 And intB = 5 ThenblnResult = TrueJinýblnResult = FalseKonec If

Protože se obě proměnné rovnají 5, bude blnVýsledek vrací True:

Obrázek 1. Použití logického operátoru And ve VBA

Pomocí nebo logického operátoru

The Nebo logický operátor porovnává dvě nebo více podmínek. Pokud je splněna alespoň jedna z podmínek, vrátí hodnotu True. Pokud není splněna žádná z podmínek, vrátí operátor False. Zde je kód pro příklad:

123456789101112 Dim intA jako celé čísloDim intB jako celé čísloDim blnVýsledek jako booleovskýintA = 5intB = 10Pokud intA = 5 Nebo intB = 5 PakblnResult = TrueJinýblnResult = FalseKonec If

V tomto příkladu chceme zkontrolovat, zda obojí intA se rovná 5. nebo intB se rovná 10. Pokud je některá z těchto podmínek pravdivá, hodnota Boolean blnVýsledek bude pravdivé, v opačném případě bude nepravdivé.

Nejprve nastavíme hodnotu intA do 5 a intB do 10:

12 intA = 5intB = 10

Poté použijeme Nebo operátor v příkazu If pro kontrolu, zda se některá z hodnot rovná 5:

12345 Pokud intA = 5 Nebo intB = 5 PakblnResult = TrueJinýblnResult = FalseKonec If

Tak jako intA hodnota je 5, blnVýsledek vrací True:

Obrázek 2. Použití logického operátoru Nebo ve VBA

Použití nelogického operátoru

The Ne logický operátor kontroluje jednu nebo více podmínek. Pokud jsou podmínky splněny, operátor vrátí False. V opačném případě vrátí True. Zde je kód pro příklad:

12345678910 Dim intA jako celé čísloDim blnVýsledek jako booleovskýintA = 5Pokud ne (intA = 6) PakblnResult = TrueJinýblnResult = FalseKonec If

V tomto příkladu chceme zkontrolovat, zda je hodnota intA není rovno 6. Pokud intA je jiná než 6, hodnota Boolean blnVýsledek bude pravdivé, v opačném případě bude nepravdivé.

Nejprve nastavíme hodnotu intA do 5:

1 intA = 5

Poté použijeme operátor Not v příkazu If, abychom zkontrolovali, zda je hodnota intA jiná než 6:

12345 Pokud ne (intA = 6) PakblnResult = TrueJinýblnResult = FalseKonec If

Tak jako intA hodnota je 5, blnVýsledek vrací True:

Obrázek 3. Použití nelogického operátoru ve VBA

Použití logického operátoru Xor

The Xor logický operátor porovnává dvě nebo více podmínek. Pokud je splněna přesně jedna z podmínek, vrátí True. Pokud není splněna žádná z podmínek nebo je splněno více než jedna, vrátí hodnotu False. Zde je kód pro příklad:

123456789101112 Dim intA jako celé čísloDim intB jako celé čísloDim blnVýsledek jako booleovskýintA = 5intB = 10Pokud intA = 5 Xor intB = 5 PakblnResult = TrueJinýblnResult = FalseKonec If

V tomto příkladu chceme zkontrolovat, zda se přesně jedna z hodnot (intA nebo IntB) rovná 5. Pokud je splněna pouze jedna podmínka, hodnota Boolean blnVýsledek bude pravdivé, v opačném případě bude nepravdivé.

Nejprve nastavíme hodnotu intA do 5 a intB do 10:

12 intA = 5intB = 10

Poté použijeme Nebo operátor v příkazu If pro kontrolu, zda se některá z hodnot rovná 5:

12345 Pokud intA = 5 Xor intB = 5 PakblnResult = TrueJinýblnResult = FalseKonec If

Tak jako intA hodnota je 5 a intB je 10, blnVýsledek vrací True:

Obrázek 4. Použití logického operátoru Xor ve VBA

Je operátor

Is Operator testuje, zda dvě objektové proměnné ukládají stejný objekt.

Podívejme se na příklad. Zde přiřadíme dva listy k objektům listu rng1 a rng2, přičemž testujeme, zda dva objekty listu ukládají stejný list:

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

Objekty listu samozřejmě nejsou stejné, takže je vráceno „Různé WS“.

Jako operátor

Operátor Like může porovnat dva řetězce pro nepřesné shody. 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

Vám pomůže rozvoji místa, sdílet stránku s přáteli

wave wave wave wave wave