VBA logische operators - OR, AND, XOR, NOT, IS, & LIKE

Met VBA kunt u de logische operatoren gebruiken En, Of, Niet, Xor waarden te vergelijken. De operators worden als "Booleaans" beschouwd, wat betekent dat ze als resultaat True of False retourneren.

Als je wilt leren hoe je strings kunt vergelijken, klik dan hier: VBA Compare Strings - StrComp

Als u wilt leren hoe u vergelijkingsoperatoren kunt gebruiken, klik dan hier: VBA-vergelijkingsoperators - niet gelijk aan & meer

De en logische operator gebruiken

De En logische operator vergelijkt twee of meer voorwaarden. Als alle voorwaarden waar zijn, retourneert de operator True. Als ten minste één van de voorwaarden niet waar is, retourneert de operator False. Hier is een voorbeeld:

123456789101112 Dim intA als geheel getalDim intB als geheel getalDim blnResultaat als BooleaansintA = 5intB = 5Als intA = 5 en intB = 5 DanblnResult = WaarAndersblnResult = OnwaarStop als

In dit voorbeeld willen we controleren of beide intA en intB zijn gelijk aan 5. Als dit waar is, is de waarde van Boolean blnResultaat zal Waar zijn, anders zal het Onwaar zijn.

Eerst stellen we waarden in van intA en intB tot 5:

12 intA = 5intB = 5

Daarna gebruiken we de En operator in de If-instructie om te controleren of de waarden gelijk zijn aan 5:

12345 Als intA = 5 en intB = 5 DanblnResult = WaarAndersblnResult = OnwaarStop als

Aangezien beide variabelen gelijk zijn aan 5, is de blnResultaat geeft waar terug:

Afbeelding 1. De logische operator And gebruiken in VBA

De of logische operator gebruiken

De Of logische operator vergelijkt twee of meer voorwaarden. Als ten minste één van de voorwaarden waar is, wordt True geretourneerd. Als geen van de voorwaarden waar is, retourneert de operator False. Hier is de code voor het voorbeeld:

123456789101112 Dim intA als geheel getalDim intB als geheel getalDim blnResultaat als BooleaansintA = 5intB = 10Als intA = 5 Of intB = 5 DanblnResult = WaarAndersblnResult = OnwaarStop als

In dit voorbeeld willen we controleren of beide intA is gelijk aan 5. of intB is gelijk aan 10. Als een van deze voorwaarden waar is, is de waarde van Boolean blnResultaat zal Waar zijn, anders zal het Onwaar zijn.

Eerst stellen we de waarde van intA tot 5 en intB tot 10:

12 intA = 5intB = 10

Daarna gebruiken we de Of operator in de If-instructie om te controleren of een van de waarden gelijk is aan 5:

12345 Als intA = 5 Of intB = 5 DanblnResult = WaarAndersblnResult = OnwaarStop als

Als intA waarde is 5, de blnResultaat geeft waar terug:

Afbeelding 2. De logische operator Of gebruiken in VBA

De niet-logische operator gebruiken

De Niet logische operator controleert een of meer voorwaarden. Als de voorwaarden waar zijn, retourneert de operator False. Anders wordt True geretourneerd. Hier is de code voor het voorbeeld:

12345678910 Dim intA als geheel getalDim blnResultaat als BooleaansintA = 5Zo niet (intA = 6) DanblnResult = WaarAndersblnResult = OnwaarStop als

In dit voorbeeld willen we controleren of de waarde van intA is niet gelijk aan 6. Als intA is anders dan 6, de waarde van Boolean blnResultaat zal Waar zijn, anders zal het Onwaar zijn.

Eerst stellen we de waarde van intA tot 5:

1 intA = 5

Daarna gebruiken we de Not-operator in het If-statement om te controleren of de waarde van intA anders is dan 6:

12345 Zo niet (intA = 6) DanblnResult = WaarAndersblnResult = OnwaarStop als

Als intA waarde is 5, de blnResultaat geeft waar terug:

Afbeelding 3. De operator Niet logisch gebruiken in VBA

De Xor logische operator gebruiken

De Xor logische operator vergelijkt twee of meer voorwaarden. Als precies een van de voorwaarden waar is, wordt True geretourneerd. Als geen van de voorwaarden waar is, of meer dan één waar is, wordt False geretourneerd. Hier is de code voor het voorbeeld:

123456789101112 Dim intA als geheel getalDim intB als geheel getalDim blnResultaat als BooleaansintA = 5intB = 10Als intA = 5 Xor intB = 5 DanblnResult = WaarAndersblnResult = OnwaarStop als

In dit voorbeeld willen we controleren of precies één van de waarden (intA of IntB) gelijk is aan 5. Als slechts één voorwaarde waar is, is de waarde van Boolean blnResultaat zal Waar zijn, anders zal het Onwaar zijn.

Eerst stellen we de waarde van intA tot 5 en intB tot 10:

12 intA = 5intB = 10

Daarna gebruiken we de Of operator in de If-instructie om te controleren of een van de waarden gelijk is aan 5:

12345 Als intA = 5 Xor intB = 5 DanblnResult = WaarAndersblnResult = OnwaarStop als

Als intA waarde is 5 en intB is 10, de blnResultaat geeft waar terug:

Afbeelding 4. De logische operator Xor gebruiken in VBA

Is operator

De Is-operator test of twee objectvariabelen hetzelfde object opslaan.

Laten we een voorbeeld bekijken. Hier zullen we twee werkbladen toewijzen aan werkbladobjecten rng1 en rng2, testen of de twee werkbladobjecten hetzelfde werkblad opslaan:

12345678910111213 Sub CompareObjects()Dim ws1 als werkblad, ws2 als werkbladStel ws1 = Vellen ("Blad1") inStel ws2 = Vellen ("Blad2") inAls ws1 ws2 is, danMsgBox "Dezelfde WS"AndersMsgBox "Verschillende WS'en"Stop alsEinde sub

Natuurlijk zijn de werkbladobjecten niet hetzelfde, dus "Verschillende WS's" wordt geretourneerd.

Like-operator

De Like Operator kan twee strings vergelijken voor onnauwkeurige overeenkomsten. In dit voorbeeld wordt getest of een tekenreeks begint met "Mr."

1234567891011121314 Sub LikeDemo()Dim strName As StringDim blnResultaat als BooleaansstrName = "Meneer Michael James"Als strName Like "Mr*" DanblnResult = WaarAndersblnResult = OnwaarStop alsEinde sub

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave