VBA boolsk datatype (dim variabel)

Boolsk variabel type

VBA -boolsk datatype brukes til å lagre sanne eller usanne verdier. True kan også representeres med 1 og Falsk med 0.

For å deklarere en boolsk variabel, bruker du Dim Statement (forkortelse for Dimension):

1 Dim blnA som boolsk

For å tilordne en verdi til en variabel, bruker du bare likhetstegnet:

1 blnA = sant

Når du setter dette inn i en prosedyre, kan det se slik ut:

123456789101112 Sub blnExample ()'erklærer den boolske variabelenDim blnA som boolsk'kjør kode for å fylle ut variabelen - vanligvis er koden en if eller en case statementHvis område ("A1")> 0 dablnA = santEllersblnA = FalskeSlutt om'vis meldingsboksenMsgBox "Testen for å se om cellen har en verdi større enn 0 er" & blnASlutt Sub

Hvis du kjører koden ovenfor, vises følgende meldingsboks.

Deklarere boolsk variabel på modul eller globalt nivå

I forrige eksempel har vi erklært Boolsk variabel i en prosedyre. Variabler deklarert med en prosedyre kan bare brukes innenfor denne prosedyren.

I stedet kan du deklarere boolske variabler på modul- eller globalt nivå.

Modulenivå

Du erklærer Modulenivå variabler øverst i kodemodulene med Dim uttalelse.

Disse variablene kan brukes med alle prosedyrer i den kodemodulen.

Globalt nivå

Du erklærer også Globalt nivå variabler øverst i kodemodulene. Imidlertid, i stedet for å bruke Dim uttalelse, vil du bruke Offentlig uttalelse for å indikere at Boolsk variabel er tilgjengelig for bruk i hele ditt VBA -prosjekt.

1 Offentlig blnA som boolsk

Hvis du skulle erklære Boolsk variabel på modulnivå og deretter prøve å bruke den i en annen modul, vil du få en feilmelding.

Imidlertid, hvis du hadde brukt det offentlige søkeordet for å erklære Boolsk variabel, ville feilen ikke oppstå og prosedyren ville kjøre perfekt.

Bruke en boolsk variabel

Du bruker den boolske variabelen i logisk sammenligning. Disse brukes ofte med If -setninger for å teste om en betingelse er sann eller usann i henhold til eksemplet ovenfor, eller i en kodelinje for å bruke en logisk test - kanskje for å se om en verdi er større enn en annen.

12345678 Sub blnExample ()'erklærer den boolske variabelenDim blnA Som boolsk'test for å se om ett tall er større enn det neste talletblnA = 45> 68'vis meldingsboksenMsgBox blnASlutt Sub

Hvis du kjører koden ovenfor, får du følgende meldingsboks.

fordi selvfølgelig 45 ikke er større enn 68!

Bruke boolske operatører

Ettersom boolske variabler brukes i logisk sammenligning, kan vi bruke de logiske operatorene AND og OR til å teste om mer enn én betingelse er sann eller usann.

Bruke AND -operatøren

Vi kan bruke AND -funksjonen for å se om begge betingelsene er oppfylt.

12345678 Sub blnExample ()'erklærer den boolske variabelenDim blnA Som boolsk'bruk AND -operatøren for å teste om begge betingelsene er sanneblnA = 10> 13 Og 15> 12'vis meldingsboksenMsgBox blnASlutt Sub

eller vi kan kjøre den samme testen ved hjelp av en If -erklæring:

123456789101112 Sub blnExample ()'erklærer den boolske variabelenDim blnA Som boolsk'bruk AND -operatøren for å teste om begge betingelsene er sanneHvis 10> 13 og 15> 12 DablnA = santEllersblnA = FalskSlutt om'vis meldingsboksenMsgBox blnASlutt Sub

Begge eksemplene ovenfor vil komme tilbake FALSK på grunn av det faktum at 10 er IKKE større enn 13 - og BÅDE betingelsene må være sanne for at den boolske skal være sann.

Bruker OR -operatøren

Vi kan bruke ELLER -funksjonen for å se om EN AV betingelsene er oppfylt.

12345678 Sub blnExample ()'erklærer den boolske variabelenDim blnA Som boolsk'bruk AND -operatøren for å teste om begge betingelsene er sanneblnA = 10> 13 Eller 15> 12'vis meldingsboksenMsgBox blnASlutt Sub

eller vi kan kjøre den samme testen ved hjelp av en If -erklæring:

123456789101112 Sub blnExample ()'erklærer den boolske variabelenDim blnA Som boolsk'bruk AND -operatøren for å teste om begge betingelsene er sanneHvis 10> 13 ELLER 15> 12 DablnA = santEllersblnA = FalskSlutt om'vis meldingsboksenMsgBox blnASlutt Sub

Disse eksemplene vil komme tilbake EKTE på grunn av at 10 IKKE er større enn 13 MEN 15 ER større enn 12 - ogBARE EN tilstanden må være sann for at den boolske skal være sann.

Ved å bruke If -setninger kan vi bruke mer logiske operatorer

Bruker NOT -operatøren

Vi kan også bruke NOT -operatoren med den boolske variabelen. NOT -operatøren negerer verdien av tilstanden - så hvis en betingelse er sann, vil NOT -operatøren returnere usann.

12345678910111213141516 Sub FindDifferences ()'erklære rekkeviddevariablerDim rng1 As RangeDim rng2 As Range'aktiver ark 1Regneark ("Ark1"). Aktiver'fyll ut områdeneSett rng1 = Range ("A3")Sett rng2 = Range ("B3")'bruk NOT -operatoren for å se om verdiene er like eller ikke.Hvis ikke rng1.Value = rng2.Value DaMsgBox "Verdiene i cellene er ikke like"EllersMsgBox "Verdiene i cellene er like"Slutt omSlutt Sub

Bruke Xor Logical Operator

DeXor logisk operator brukes til å sammenligne to eller flere forhold. Hvis en av betingelsene er sanne, vil den returnere SANN. Hvis det er 2 betingelser, og INGEN er sanne eller begge er sanne, vil den returnere FALSK.

1234567891011121314151617 Sub blnExample ()'erklærer heltalleneDim intA som heltallDim intB Som heltall'erklærer den boolske variabelenDim blnResult As Boolean'fyll ut variableneintA = 5intB = 10'sjekk om det er santHvis intA = 5 Xor intB = 5 DablnResult = SantEllersblnResult = FalskSlutt omMsgBox blnResultSlutt Sub

I eksemplet ovenfor, da EN av betingelsene er SANN, kommer meldingsboksen tilbake EKTE.

1234567891011121314151617 Sub blnExample ()'erklærer heltalleneDim intA som heltallDim intB Som heltall'erklærer den boolske variabelenDim blnResult As Boolean'fyll ut variableneintA = 5intB = 5'sjekk om det er santHvis intA = 5 Xor intB = 5 DablnResult = SantEllersblnResult = FalskSlutt omMsgBox blnResultSlutt Sub

Imidlertid, i eksemplet ovenfor, ettersom BÅDE betingelsene er sanne, kommer meldingsboksen tilbake FALSK.

1234567891011121314151617 Sub blnExample ()'erklærer heltalleneDim intA som heltallDim intB Som heltall'erklærer den boolske variabelenDim blnResult As Boolean'fyll ut variableneintA = 6intB = 8'sjekk om det er santHvis intA = 5 Xor intB = 5 DablnResult = SantEllersblnResult = FalskSlutt omMsgBox blnResultSlutt Sub

og til slutt, ettersom begge betingelsene er FALSE, vil meldingsboksen også returnere FALSK.

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave