VBA Boolean andmetüüp (muutuv muutuja)

Loogiline muutuja tüüp

VBA Boolean andmetüüpi kasutatakse väärtuste True või False salvestamiseks. Tõene võib olla ka 1 ja vale 0.

Loogilise muutuja deklareerimiseks kasutage Dim Statement (lühend Dimension):

1 Dim blnA kui Boolean

Seejärel kasutage muutujale väärtuse määramiseks lihtsalt võrdusmärki:

1 blnA = Tõsi

Kui panete selle protseduurile, võib see välja näha järgmine:

123456789101112 AlamblnNäide ()'deklareerige boolean muutujaDim blnA kui Boolean'käivitage muutuja täitmiseks kood - tavaliselt on kood if või case lauseKui vahemik ("A1")> 0 siisblnA = tõsiMuidublnA = valeLõpp Kui'näidake sõnumikastMsgBox "Test, et näha, kas lahtri väärtus on suurem kui 0" & blnAEnd Sub

Kui käivitate ülaltoodud koodi, kuvatakse järgmine sõnumikast.

Loogilise muutuja deklareerimine moodulil või globaalsel tasandil

Eelmises näites kuulutasime välja Boolean muutuja protseduuri piires. Protseduuriga deklareeritud muutujaid saab kasutada ainult selle protseduuri raames.

Selle asemel saate deklareerida loogilised muutujad mooduli või globaalsel tasandil.

Mooduli tase

Sina kuulutad Mooduli tase muutujad koodimoodulite ülaosas koos Dim avaldus.

Neid muutujaid saab selle koodimooduli mis tahes protseduuriga kasutada.

Globaalne tase

Te deklareerite ka Globaalne tase muutujad koodimoodulite ülaosas. Selle asemel, et kasutada Dim avaldust, kasutaksite Avalik avaldus, mis näitab, et Boolean muutuja on saadaval kasutamiseks kogu teie VBA projekti jooksul.

1 Avalik blnA kui Boolean

Kui peaksite kuulutama ,. Boolean muutuja mooduli tasemel ja seejärel proovige seda kasutada mõnes teises moodulis, saate vea.

Kui aga oleksite deklareerimiseks kasutanud märksõna Avalik Boolean muutuja, viga ei esine ja protseduur toimiks ideaalselt.

Loogilise muutuja kasutamine

Loogilises võrdluses kasutate Boole'i ​​muutujat. Neid kasutatakse sageli If -lausetega, et kontrollida, kas tingimus on ülaltoodud näite kohaselt tõene või vale, või koodireal loogilise testi rakendamiseks - võib -olla selleks, et näha, kas üks väärtus on suurem kui teine.

12345678 AlamblnNäide ()'deklareerige boolean muutujaDim blnA Nagu Booleantestida, kas üks number on suurem kui järgmineblnA = 45> 68'näidake sõnumikastMsgBox blnAEnd Sub

Kui käivitate ülaltoodud koodi, kuvatakse järgmine sõnumikast.

sest muidugi pole 45 suurem kui 68!

Boole'i ​​operaatorite kasutamine

Kuna loogilises võrdluses kasutatakse loogilisi muutujaid, saame loogiliste operaatorite AND ja OR abil testida, kas mitu tingimust on tõene või vale.

Operaatori AND kasutamine

Funktsiooni AND abil saame kontrollida, kas mõlemad tingimused on täidetud.

12345678 AlamblnNäide ()'deklareerige boolean muutujaDim blnA Nagu Boolean"Kasutage operaatorit AND, et kontrollida, kas mõlemad tingimused on tõesedblnA = 10> 13 Ja 15> 12'näidake sõnumikastMsgBox blnAEnd Sub

või võime sama testi käivitada If -avalduse abil:

123456789101112 AlamblnNäide ()'deklareerige boolean muutujaDim blnA Nagu Boolean"Kasutage operaatorit AND, et kontrollida, kas mõlemad tingimused on tõesedKui 10> 13 Ja 15> 12 SiisblnA = TõsiMuidublnA = valeLõpp Kui'näidake sõnumikastMsgBox blnAEnd Sub

Mõlemad ülaltoodud näited tuleksid tagasi VALE tingitud asjaolust, et 10 on MITTE suurem kui 13 - ja MÕLEMAD tingimused peavad olema tõesed, et tõeväärtus oleks tõene.

Operaatori OR kasutamine

Funktsiooni VÕI abil saame näha, kas ÜKS tingimustest on täidetud.

12345678 AlamblnNäide ()'deklareerige boolean muutujaDim blnA Nagu Boolean"Kasutage operaatorit AND, et kontrollida, kas mõlemad tingimused on tõesedblnA = 10> 13 või 15> 12'näidake sõnumikastMsgBox blnAEnd Sub

või võime sama testi käivitada If -avalduse abil:

123456789101112 AlamblnNäide ()'deklareerige boolean muutujaDim blnA Nagu Boolean"Kasutage operaatorit AND, et kontrollida, kas mõlemad tingimused on tõesedKui 10> 13 VÕI 15> 12 SiisblnA = TõsiMuidublnA = valeLõpp Kui'näidake sõnumikastMsgBox blnAEnd Sub

Need näited tuleks tagasi TÕSI tulenevalt asjaolust, et 10 EI OLE suurem kui 13 AGA 15 ON suurem kui 12 - jaAINULT ÜKS tingimus peab olema tõene, et tõeväärtus oleks tõene.

If -lausete kasutamine võimaldab meil kasutada loogilisemaid operaatoreid

Operaatori NOT kasutamine

Boolean -muutujaga saame kasutada ka NOT -operaatorit. Operaator NOT eitab tingimuse väärtuse - nii et kui tingimus on tõene, tagastab NOT -operaator vale.

12345678910111213141516 Sub FindDifferences ()'deklareerige vahemiku muutujadDim rng1 As RangeDim rng2 As Range'aktiveerige leht 1Töölehed ("Sheet1"). Aktiveeri'asustada vahemikkeMäära rng1 = Vahemik ("A3")Määra rng2 = Vahemik ("B3")"kasutage NOT -operaatorit, et näha, kas väärtused on võrdsed või mitte.Kui ei, siis rng1.Value = rng2.Value SiisMsgBox "Lahtrite väärtused pole võrdsed"MuiduMsgBox "Lahtrite väärtused on võrdsed"Lõpp KuiEnd Sub

Loogilise operaatori Xor kasutamine

TheXor loogilist operaatorit kasutatakse kahe või enama tingimuse võrdlemiseks. Kui üks tingimustest on tõene, tagastab see tõe. Kui on kaks tingimust ja MITTE KÕIK ei ole tõsi või MÕlemad on tõesed, tagastab see VÄÄR.

1234567891011121314151617 AlamblnNäide ()"deklareerige täisarvudDim intA täisarvunaDim intB Nagu täisarv'deklareerige boolean muutujaDim blnTulemus Booleanina'täitke muutujadintA = 5intB = 10'kontrollige, kas üks on tõsiKui intA = 5 X või intB = 5 SiisblnResult = TõsiMuidublnResult = ValeLõpp KuiMsgBox blnTulemusEnd Sub

Ülaltoodud näites, kuna ÜKS tingimustest on TÕENE, naaseb sõnumikast TÕSI.

1234567891011121314151617 AlamblnNäide ()"deklareerige täisarvudDim intA täisarvunaDim intB Nagu täisarv'deklareerige boolean muutujaDim blnTulemus Booleanina'täitke muutujadintA = 5intB = 5'kontrollige, kas üks on tõsiKui intA = 5 X või intB = 5 SiisblnResult = TõsiMuidublnResult = ValeLõpp KuiMsgBox blnTulemusEnd Sub

Kuid ülaltoodud näites, kuna mõlemad tingimused on tõesed, naaseb sõnumikast VALE.

1234567891011121314151617 AlamblnNäide ()"deklareerige täisarvudDim intA täisarvunaDim intB Nagu täisarv'deklareerige boolean muutujaDim blnTulemus Booleanina'täitke muutujadintA = 6intB = 8'kontrollige, kas üks on tõsiKui intA = 5 X või intB = 5 SiisblnResult = TõsiMuidublnResult = ValeLõpp KuiMsgBox blnTulemusEnd Sub

ja lõpuks, kuna mõlemad tingimused on FALSE, tagastab sõnumikast ka FALSE.

Te aitate arengu ala, jagades leht oma sõpradega

wave wave wave wave wave