VBA logiska operatörer - ELLER, OCH, XOR, INTE, ÄR & LIKER

VBA låter dig använda de logiska operatorerna Och, Eller, Inte, Xor att jämföra värden. Operatörerna anses vara ”booleska”, vilket innebär att de returnerar True eller False som ett resultat.

Om du vill lära dig att jämföra strängar, klicka här: VBA Jämför strängar - StrComp

Om du vill lära dig hur du använder jämförelseoperatorer, klicka här: VBA -jämförelseoperatörer - inte lika med & mer

Med hjälp av And Logical Operator

De Och logisk operatör jämför två eller flera villkor. Om alla villkor är sanna kommer operatören att returnera True. Om minst ett av villkoren inte är sanna kommer operatören att returnera Falskt. Här är ett exempel:

123456789101112 Dim intA som heltalDim intB som heltalDim blnResult As BooleanintA = 5intB = 5Om intA = 5 Och intB = 5 DåblnResult = SantAnnanblnResult = FalsktAvsluta om

I det här exemplet vill vi kontrollera om båda intA och intB är lika med 5. Om detta är sant, är värdet av booleskt blnResult kommer att vara sant, annars blir det falskt.

Först sätter vi värden på intA och intB till 5:

12 intA = 5intB = 5

Efter det använder vi Och operatören i if -satsen för att kontrollera om värdena är lika med 5:

12345 Om intA = 5 Och intB = 5 DåblnResult = SantAnnanblnResult = FalsktAvsluta om

Eftersom båda variablerna är lika med 5, är blnResult returnerar True:

Bild 1. Använda Och logiska operatorn i VBA

Använda Or Logical Operator

De Eller logisk operatör jämför två eller flera villkor. Om minst ett av villkoren är sant, kommer det att returnera Sant. Om inget av villkoren är sanna kommer operatören att returnera Falsk. Här är koden för exemplet:

123456789101112 Dim intA som heltalDim intB som heltalDim blnResult As BooleanintA = 5intB = 10Om intA = 5 Eller intB = 5 DåblnResult = SantAnnanblnResult = FalsktAvsluta om

I det här exemplet vill vi kontrollera om båda intA är lika med 5. eller intB är lika med 10. Om något av dessa villkor är sant, är värdet av booleskt blnResult kommer att vara sant, annars blir det falskt.

Först sätter vi värdet på intA till 5 och intB till 10:

12 intA = 5intB = 10

Efter det använder vi Eller operatör i if -satsen för att kontrollera om något av värdena är lika med 5:

12345 Om intA = 5 Eller intB = 5 DåblnResult = SantAnnanblnResult = FalsktAvsluta om

Som intA värdet är 5, blnResult returnerar True:

Bild 2. Använda den logiska operatorn Or i VBA

Använda Not Logical Operator

De Inte logisk operatör kontrollerar ett eller flera villkor. Om villkoren är sanna returnerar operatören False. Annars returnerar den True. Här är koden för exemplet:

12345678910 Dim intA som heltalDim blnResult As BooleanintA = 5Om inte (intA = 6) DåblnResult = SantAnnanblnResult = FalsktAvsluta om

I det här exemplet vill vi kontrollera om värdet av intA är inte lika med 6. If intA är annorlunda än 6, värdet av booleskt blnResult kommer att vara sant, annars blir det falskt.

Först sätter vi värdet på intA till 5:

1 intA = 5

Efter det använder vi operatorn Not i If -satsen för att kontrollera om värdet på intA är annorlunda än 6:

12345 Om inte (intA = 6) DåblnResult = SantAnnanblnResult = FalsktAvsluta om

Som intA värdet är 5, blnResult returnerar True:

Bild 3. Använda operatorn Not logical i VBA

Använda Xor Logical Operator

De Xor logisk operatör jämför två eller flera villkor. Om exakt ett av villkoren är sant, kommer det att returnera Sant. Om inget av villkoren är sant, eller om mer än ett är sant, kommer det att returnera Falskt. Här är koden för exemplet:

123456789101112 Dim intA som heltalDim intB som heltalDim blnResult As BooleanintA = 5intB = 10Om intA = 5 Xor intB = 5 DåblnResult = SantAnnanblnResult = FalsktAvsluta om

I det här exemplet vill vi kontrollera om exakt ett av värdena (intA eller IntB) är lika med 5. Om bara ett villkor är sant, är värdet av booleskt blnResult kommer att vara sant, annars blir det falskt.

Först sätter vi värdet på intA till 5 och intB till 10:

12 intA = 5intB = 10

Efter det använder vi Eller operatör i if -satsen för att kontrollera om något av värdena är lika med 5:

12345 Om intA = 5 Xor intB = 5 DåblnResult = SantAnnanblnResult = FalsktAvsluta om

Som intA värdet är 5 och intB är 10, den blnResult returnerar True:

Bild 4. Använda den logiska operatorn Xor i VBA

Är operatör

Is Operator testar om två objektvariabler lagrar samma objekt.

Låt oss titta på ett exempel. Här kommer vi att tilldela två kalkylblad till kalkylbladobjekt rng1 och rng2, testa om de två kalkylbladsobjekten lagrar samma kalkylblad:

12345678910111213 Sub CompareObjects ()Dim ws1 som kalkylblad, ws2 som arbetsbladAnge ws1 = Sheets ("Sheet1")Ange ws2 = Sheets ("Sheet2")Om ws1 är ws2 DåMsgBox "Samma WS"AnnanMsgBox "Olika WS"Avsluta omAvsluta Sub

Naturligtvis är kalkylbladsobjekten inte desamma, så "Olika WS" returneras.

Som operatör

Liknande operatör kan jämföra två strängar för inexakta matchningar. Detta exempel kommer att testa om en sträng börjar med "Mr."

1234567891011121314 Sub LikeDemo ()Dim strName Som strängDim blnResult As BooleanstrName = "Mr. Michael James"Om strName Gilla "Mr*" DåblnResult = SantAnnanblnResult = FalsktAvsluta omAvsluta Sub

Du kommer att bidra till utvecklingen av webbplatsen, dela sidan med dina vänner

wave wave wave wave wave