Logickí operátori VBA - OR, AND, XOR, NOT, IS a LIKE

VBA vám umožňuje používať logické operátory A, Alebo, Nie, Xor porovnávať hodnoty. Operátori sú považovaní za „booleovských“, čo znamená, že v dôsledku toho vracajú hodnotu True alebo False.

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: Porovnávacie operátory VBA - nerovná sa a ďalšie

Použitie logického operátora

The A logický operátor porovnáva dve alebo viac podmienok. Ak sú splnené všetky podmienky, operátor vráti hodnotu True. Ak aspoň jedna z podmienok nie je pravdivá, operátor vráti hodnotu False. Tu je príklad:

123456789101112 Dim intA ako celé čísloDim intB ako celé čísloDim blnVýsledok ako booleovskýintA = 5intB = 5Ak intA = 5 A intB = 5 PotomblnResult = PravdaInakblnResult = FalseKoniec Ak

V tomto prípade chceme skontrolovať, či sú obidve intA a intB sa rovnajú 5. 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 A operátor v príkaze If, ​​aby skontroloval, či sú hodnoty rovné 5:

12345 Ak intA = 5 A intB = 5 PotomblnResult = PravdaInakblnResult = FalseKoniec Ak

Pretože obe premenné sú rovné 5, bude blnVýsledok vráti True:

Obrázok 1. Použitie logického operátora And vo VBA

Použitie alebo logického operátora

The Alebo logický operátor porovnáva dve alebo viac podmienok. Ak je splnená aspoň jedna z podmienok, vráti hodnotu True. Ak nie je splnená žiadna z podmienok, operátor vráti hodnotu False. Tu je kód pre príklad:

123456789101112 Dim intA ako celé čísloDim intB ako celé čísloDim blnVýsledok ako booleovskýintA = 5intB = 10Ak intA = 5 alebo intB = 5 PotomblnResult = PravdaInakblnResult = FalseKoniec Ak

V tomto prípade chceme skontrolovať, či sú obidve intA sa rovná 5. alebo intB sa rovná 10. Ak je ktorákoľvek z týchto podmienok pravdivá, hodnota Boolean blnVýsledok bude to pravda, v opačnom prípade to bude nepravda.

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

12 intA = 5intB = 10

Potom použijeme Alebo operátor v príkaze If, ​​aby skontroloval, či sa niektorá z hodnôt rovná 5:

12345 Ak intA = 5 alebo intB = 5 PotomblnResult = PravdaInakblnResult = FalseKoniec Ak

Ako intA hodnota je 5, blnVýsledok vráti True:

Obrázok 2. Použitie logického operátora Alebo vo VBA

Použitie nie logického operátora

The Nie logický operátor kontroluje jednu alebo viac podmienok. Ak sú podmienky splnené, operátor vráti hodnotu False. V opačnom prípade vráti hodnotu True. Tu je kód pre príklad:

12345678910 Dim intA ako celé čísloDim blnVýsledok ako booleovskýintA = 5Ak nie (intA = 6) PotomblnResult = PravdaInakblnResult = FalseKoniec Ak

V tomto prípade chceme skontrolovať, či je hodnota intA sa nerovná 6. Ak intA je iná ako 6, hodnota Boolean blnVýsledok bude to pravda, v opačnom prípade to bude nepravda.

Najprv nastavíme hodnotu intA do 5:

1 intA = 5

Potom použijeme operátor Not v príkaze If na kontrolu, či je hodnota intA iná ako 6:

12345 Ak nie (intA = 6) PotomblnResult = PravdaInakblnResult = FalseKoniec Ak

Ako intA hodnota je 5, blnVýsledok vráti True:

Obrázok 3. Použitie nie logického operátora vo VBA

Použitie logického operátora Xor

The Xor logický operátor porovnáva dve alebo viac podmienok. Ak je splnená presne jedna z podmienok, vráti hodnotu True. Ak nie je splnená žiadna z podmienok alebo je splnených viac ako jedna podmienka, vráti hodnotu False. Tu je kód pre príklad:

123456789101112 Dim intA ako celé čísloDim intB ako celé čísloDim blnVýsledok ako booleovskýintA = 5intB = 10Ak intA = 5 X alebo intB = 5 PotomblnResult = PravdaInakblnResult = FalseKoniec Ak

V tomto prípade chceme skontrolovať, či sa presne jedna z hodnôt (intA alebo IntB) rovná 5. Ak je splnená iba jedna podmienka, hodnota Boolean blnVýsledok bude to pravda, v opačnom prípade to bude nepravda.

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

12 intA = 5intB = 10

Potom použijeme Alebo operátor v príkaze If, ​​aby skontroloval, či sa niektorá z hodnôt rovná 5:

12345 Ak intA = 5 X alebo intB = 5 PotomblnResult = PravdaInakblnResult = FalseKoniec Ak

Ako intA hodnota je 5 a intB je 10, blnVýsledok vráti True:

Obrázok 4. Použitie logického operátora Xor vo VBA

Je operátor

Is Operator testuje, či dve objektové premenné ukladajú ten istý objekt.

Pozrime sa na príklad. Tu priradíme dva pracovné hárky k objektom pracovného hárka rng1 a rng2, pričom testujeme, či dva objekty pracovného hárka uchovávajú rovnaký pracovný hárok:

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

Objekty pracovného hárka samozrejme nie sú rovnaké, takže sa vráti „rôzne WS“.

Rovnako ako operátor

Operátor Like môže porovnávať dva reťazce pre nepresné zhody. 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

Vám pomôže rozvoju miesta, zdieľať stránku s priateľmi

wave wave wave wave wave