Operatory logiczne VBA - OR, AND, XOR, NOT, IS i LIKE

VBA umożliwia korzystanie z operatorów logicznych I, Lub, Nie, Xor do porównania wartości. Operatory są uważane za „Boolean”, co oznacza, że ​​w wyniku zwracają True lub False.

Jeśli chcesz dowiedzieć się, jak porównywać ciągi, kliknij tutaj: VBA Compare Strings - StrComp

Jeśli chcesz dowiedzieć się, jak korzystać z operatorów porównania, kliknij tutaj: Operatory porównania VBA - nierówne i więcej

Korzystanie z operatora logicznego i

ten I operator logiczny porównuje co najmniej dwa warunki. Jeśli wszystkie warunki są spełnione, operator zwróci True. Jeśli przynajmniej jeden z warunków nie jest spełniony, operator zwróci False. Oto przykład:

123456789101112 Dim intA jako liczba całkowitaDim intB jako liczba całkowitaDim blnResult As BooleanintA = 5intB = 5Jeśli intA = 5 I intB = 5 WtedyblnWynik = PrawdaW przeciwnym razieblnWynik = FałszZakończ, jeśli

W tym przykładzie chcemy sprawdzić, czy oba intA oraz intB są równe 5. Jeśli to prawda, wartość Boolean blnWynik będzie prawdą, w przeciwnym razie będzie fałszem.

Najpierw ustalamy wartości intA oraz intB do 5:

12 intA = 5intB = 5

Następnie używamy I operator w instrukcji If, aby sprawdzić, czy wartości są równe 5:

12345 Jeśli intA = 5 I intB = 5 WtedyblnWynik = PrawdaW przeciwnym razieblnWynik = FałszZakończ, jeśli

Ponieważ obie zmienne są równe 5, blnWynik zwraca True:

Rysunek 1. Korzystanie z operatora logicznego And w VBA

Korzystanie z operatora logicznego lub

ten Lub operator logiczny porównuje co najmniej dwa warunki. Jeśli przynajmniej jeden z warunków jest spełniony, zwróci True. Jeśli żaden z warunków nie jest spełniony, operator zwróci False. Oto kod przykładu:

123456789101112 Dim intA jako liczba całkowitaDim intB jako liczba całkowitaDim blnResult As BooleanintA = 5intB = 10Jeśli intA = 5 Lub intB = 5 WtedyblnWynik = PrawdaW przeciwnym razieblnWynik = FałszZakończ, jeśli

W tym przykładzie chcemy sprawdzić, czy oba intA jest równy 5. lub intB jest równa 10. Jeśli którykolwiek z tych warunków jest spełniony, wartość Boolean blnWynik będzie prawdą, w przeciwnym razie będzie fałszem.

Najpierw ustalamy wartość intA do 5 i intB do 10:

12 intA = 5intB = 10

Następnie używamy Lub operator w instrukcji If, aby sprawdzić, czy którakolwiek z wartości jest równa 5:

12345 Jeśli intA = 5 Lub intB = 5 WtedyblnWynik = PrawdaW przeciwnym razieblnWynik = FałszZakończ, jeśli

Jak intA wartość to 5, blnWynik zwraca True:

Rysunek 2. Użycie operatora logicznego Or w VBA

Korzystanie z operatora nielogicznego

ten Nie operator logiczny sprawdza co najmniej jeden warunek. Jeśli warunki są spełnione, operator zwraca False. W przeciwnym razie zwraca True. Oto kod przykładu:

12345678910 Dim intA jako liczba całkowitaDim blnResult As BooleanintA = 5Jeśli nie (intA = 6) WtedyblnWynik = PrawdaW przeciwnym razieblnWynik = FałszZakończ, jeśli

W tym przykładzie chcemy sprawdzić, czy wartość intA nie równa się 6. Jeśli intA jest inna niż 6, wartość Boolean blnWynik będzie prawdą, w przeciwnym razie będzie fałszem.

Najpierw ustalamy wartość intA do 5:

1 intA = 5

Następnie używamy operatora Not w instrukcji If, aby sprawdzić, czy wartość intA jest różna od 6:

12345 Jeśli nie (intA = 6) WtedyblnWynik = PrawdaW przeciwnym razieblnWynik = FałszZakończ, jeśli

Jak intA wartość to 5, blnWynik zwraca True:

Rysunek 3. Korzystanie z operatora logicznego Not w VBA

Korzystanie z operatora logicznego Xor

ten Xor operator logiczny porównuje co najmniej dwa warunki. Jeśli dokładnie jeden z warunków jest spełniony, zwróci True. Jeśli żaden z warunków nie jest spełniony lub spełniony jest więcej niż jeden, zwróci False. Oto kod przykładu:

123456789101112 Dim intA jako liczba całkowitaDim intB jako liczba całkowitaDim blnResult As BooleanintA = 5intB = 10Jeśli intA = 5 Xlub intB = 5 WtedyblnWynik = PrawdaW przeciwnym razieblnWynik = FałszZakończ, jeśli

W tym przykładzie chcemy sprawdzić, czy dokładnie jedna z wartości (intA lub IntB) jest równa 5. Jeśli tylko jeden warunek jest spełniony, wartość Boolean blnWynik będzie prawdą, w przeciwnym razie będzie fałszem.

Najpierw ustalamy wartość intA do 5 i intB do 10:

12 intA = 5intB = 10

Następnie używamy Lub operator w instrukcji If, aby sprawdzić, czy którakolwiek z wartości jest równa 5:

12345 Jeśli intA = 5 Xlub intB = 5 WtedyblnWynik = PrawdaW przeciwnym razieblnWynik = FałszZakończ, jeśli

Jak intA wartość to 5 i intB ma 10 lat, blnWynik zwraca True:

Rysunek 4. Korzystanie z operatora logicznego Xor w VBA

Jest operatorem

Operator Is sprawdza, czy dwie zmienne obiektu przechowują ten sam obiekt.

Spójrzmy na przykład. Tutaj przypiszemy dwa arkusze do obiektów arkusza rng1 i rng2, sprawdzając, czy dwa obiekty arkusza przechowują ten sam arkusz:

12345678910111213 Sub PorównajObiekty()Dim ws1 jako arkusz roboczy, ws2 jako arkusz roboczyUstaw ws1 = Arkusze("Arkusz1")Ustaw ws2 = Arkusze("Arkusz2")Jeśli ws1 Czy ws2 WtedyMsgBox "Ten sam WS"W przeciwnym razieMsgBox "Różne WS"Zakończ, jeśliNapis końcowy

Oczywiście obiekty arkusza roboczego nie są takie same, więc zwracane jest „Różne WS”.

Jak operator

Operator Like może porównać dwa ciągi dla niedokładnych dopasowań. Ten przykład sprawdzi, czy ciąg zaczyna się od „Mr.”

1234567891011121314 Sub LikeDemo()Dim strName jako ciągDim blnResult As BooleanstrName = "Pan Michael James"Jeśli strName Like "Pan*" WtedyblnWynik = PrawdaW przeciwnym razieblnWynik = FałszZakończ, jeśliNapis końcowy

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave