VBA -boolsk datatyp (dim variabel)

Boolsk variabel typ

VBA -booleska datatypen används för att lagra sanna eller falska värden. Sant kan också representeras av 1 och Falskt med 0.

För att deklarera en boolsk variabel använder du Dim Statement (kort för Dimension):

1 Dim blnA som booleskt

För att sedan tilldela ett värde till en variabel använder du helt enkelt likhetstecknet:

1 blnA = Sant

När du lägger in detta i en procedur kan det se ut så här:

123456789101112 Sub blnExempel ()'deklarera den booleska variabelnDim blnA som booleskt'kör kod för att fylla i variabeln - vanligtvis är koden ett if eller ett fallbeskedOm intervall ("A1")> 0 dåblnA = santAnnanblnA = FalsktAvsluta om'visa meddelanderutanMsgBox "Testet för att se om cellen har ett värde större än 0 är" & blnAAvsluta Sub

Om du kör koden ovan visas följande meddelanderuta.

Förklara boolsk variabel på modul eller global nivå

I föregående exempel har vi deklarerat Booleansk variabel inom ett förfarande. Variabler som deklareras med ett förfarande kan endast användas inom det förfarandet.

Istället kan du deklarera booleska variabler på modul eller global nivå.

Modulenivå

Du förklarar Modulenivå variabler högst upp i kodmodulerna med Dämpa påstående.

Dessa variabler kan användas med alla procedurer i den kodmodulen.

Global nivå

Du förklarar också Global nivå variabler högst upp i kodmodulerna. Men istället för att använda Dämpa uttalande, skulle du använda offentlig uttalande för att indikera att Booleansk variabel är tillgänglig för att användas under hela ditt VBA -projekt.

1 Offentlig blnA som booleskt

Om du skulle förklara Booleansk variabel på en modulnivå och sedan försöka använda den i en annan modul, skulle du få ett fel.

Men om du hade använt det offentliga sökordet för att deklarera Booleansk variabel, skulle felet inte uppstå och proceduren skulle fungera perfekt.

Använda en boolsk variabel

Du använder den booleska variabeln i logisk jämförelse. Dessa används ofta med If -satser för att testa om ett villkor är sant eller falskt enligt exemplet ovan, eller i en kodrad för att tillämpa ett logiskt test - kanske för att se om ett värde är större än ett annat.

12345678 Sub blnExempel ()'deklarera den booleska variabelnDim blnA Som booleskt'testa om ett tal är större än nästa talblnA = 45> 68'visa meddelanderutanMsgBox blnAAvsluta Sub

Om du kör koden ovan får du följande meddelanderuta.

för naturligtvis är 45 inte större än 68!

Använda booleska operatörer

Eftersom booleska variabler används i logisk jämförelse kan vi använda de logiska operatorerna AND och OR för att testa om mer än ett villkor är sant eller falskt.

Använda OCH -operatören

Vi kan använda OCH -funktionen för att se om BÅDA villkoren är uppfyllda.

12345678 Sub blnExempel ()'deklarera den booleska variabelnDim blnA Som booleskt'använd OCH -operatören för att testa om båda villkoren är sannablnA = 10> 13 Och 15> 12'visa meddelanderutanMsgBox blnAAvsluta Sub

eller så kan vi köra samma test med ett If -uttalande:

123456789101112 Sub blnExempel ()'deklarera den booleska variabelnDim blnA Som booleskt'använd OCH -operatören för att testa om båda villkoren är sannaOm 10> 13 Och 15> 12 DåblnA = SantAnnanblnA = FalsktAvsluta om'visa meddelanderutanMsgBox blnAAvsluta Sub

Båda exemplen ovan skulle återkomma FALSK på grund av att 10 är INTE större än 13 - och BÅDE villkoren måste vara sanna för att den booleska ska vara sann.

Använda OR -operatören

Vi kan använda ELLER -funktionen för att se om EN AV villkoren är uppfylld.

12345678 Sub blnExempel ()'deklarera den booleska variabelnDim blnA Som booleskt'använd OCH -operatören för att testa om båda villkoren är sannablnA = 10> 13 Eller 15> 12'visa meddelanderutanMsgBox blnAAvsluta Sub

eller så kan vi köra samma test med ett If -uttalande:

123456789101112 Sub blnExempel ()'deklarera den booleska variabelnDim blnA Som booleskt'använd OCH -operatören för att testa om båda villkoren är sannaOm 10> 13 ELLER 15> 12 DåblnA = SantAnnanblnA = FalsktAvsluta om'visa meddelanderutanMsgBox blnAAvsluta Sub

Dessa exempel skulle återkomma SANN på grund av att 10 INTE är större än 13 MEN 15 ÄR större än 12 - ochBARA EN villkoret måste vara sant för att den booleska ska vara sant.

Med If -satser kan vi använda mer logiska operatorer

Använda NOT -operatören

Vi kan också använda NOT -operatorn med den booleska variabeln. NOT -operatören förnekar villkorets värde - så om ett villkor är sant, kommer NOT -operatören att returnera falskt.

12345678910111213141516 Sub FindDifferences ()'deklarera intervallvariablerDim rng1 som intervallDim rng2 As Range'aktivera blad ettArbetsblad ("Ark1"). Aktivera'fylla ut intervallernaSet rng1 = Range ("A3")Set rng2 = Range ("B3")'använd NOT -operatören för att se om värdena är lika eller inte.Om inte rng1.Value = rng2.Value DåMsgBox "Värdena i cellerna är inte lika"AnnanMsgBox "Värdena i cellerna är lika"Avsluta omAvsluta Sub

Använda Xor Logical Operator

DeXor logisk operator används för att jämföra två eller flera villkor. Om ett av villkoren är sant returnerar det SANT. Om det finns 2 villkor, och INGEN är sanna eller Båda är sanna, kommer den att returnera FALSK.

1234567891011121314151617 Sub blnExempel ()'deklarera heltalDim intA som heltalDim intB som heltal'deklarera den booleska variabelnDim blnResult As Boolean'fylla i variablernaintA = 5intB = 10'kolla om det är santOm intA = 5 Xor intB = 5 DåblnResult = SantAnnanblnResult = FalsktAvsluta omMsgBox blnResultAvsluta Sub

I exemplet ovan, eftersom ETT av villkoren är SANT, kommer meddelanderutan att återvända SANN.

1234567891011121314151617 Sub blnExempel ()'deklarera heltalDim intA som heltalDim intB som heltal'deklarera den booleska variabelnDim blnResult As Boolean'fylla i variablernaintA = 5intB = 5'kolla om det är santOm intA = 5 Xor intB = 5 DåblnResult = SantAnnanblnResult = FalsktAvsluta omMsgBox blnResultAvsluta Sub

Men i exemplet ovan, eftersom BÅDA villkoren är sanna, kommer meddelanderutan tillbaka FALSK.

1234567891011121314151617 Sub blnExempel ()'deklarera heltalDim intA som heltalDim intB som heltal'deklarera den booleska variabelnDim blnResult As Boolean'fylla i variablernaintA = 6intB = 8'kolla om det är santOm intA = 5 Xor intB = 5 DåblnResult = SantAnnanblnResult = FalsktAvsluta omMsgBox blnResultAvsluta Sub

och slutligen, eftersom båda villkoren är FALSE, kommer meddelanderutan också att returnera FALSKT.

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

wave wave wave wave wave