VBA logikai adattípus (Dim változó)

Logikai változó típusa

A VBA logikai adattípus igaz vagy hamis értékek tárolására szolgál. Az igaz 1 -vel, a hamis 0 -val is ábrázolható.

Logikai változó deklarálásához használja a Dim Statement (a Dimension rövidítése) kifejezést:

1 Dim blnA mint Boolean

Ezután, ha értéket szeretne rendelni egy változóhoz, egyszerűen használja az egyenlőségjelet:

1 blnA = Igaz

Ha ezt egy eljárásba helyezi, a következőképpen nézhet ki:

123456789101112 Sub blnPélda ()'deklarálja a logikai változótDim blnA mint Boolean'futtassa a kódot a változó feltöltéséhez - általában a kód egy if vagy egy case utasításHa a tartomány ("A1")> 0 akkorblnA = igazMásblnA = HamisVége Ha'mutasd az üzenetdoboztMsgBox "A teszt annak megállapítására, hogy a cella értéke 0 -nál nagyobb -e" & blnAEnd Sub

Ha futtatja a fenti kódot, a következő üzenetmező jelenik meg.

Logikai változó deklarálása modulon vagy globális szinten

Az előző példában kijelentettük a Boolean változó egy eljárásban. Az eljárással deklarált változók csak ezen az eljáráson belül használhatók.

Ehelyett logikai változókat deklarálhat modul vagy globális szinten.

Modul szint

Kijelented A modul szintje változókat a kódmodulok tetején a Homályos nyilatkozat.

Ezek a változók az adott kódmodul bármely eljárásával használhatók.

Globális szint

Ön is kijelenti Globális szinten változók a kódmodulok tetején. Azonban ahelyett, hogy a Homályos nyilatkozatot, akkor a Nyilvános nyilatkozat arra utal, hogy a Boolean változó használható a VBA projekt során.

1 Nyilvános blnA mint Boolean

Ha bejelentenéd a Boolean modul szintjén, majd próbálja meg egy másik modulban használni, hibaüzenetet kap.

Ha azonban a Nyilvános kulcsszót használta a Boolean változó, a hiba nem fordul elő, és az eljárás tökéletesen fut.

Logikai változó használata

Logikai összehasonlításban a logikai változót használja. Ezeket gyakran használják az If utasításokkal annak tesztelésére, hogy egy feltétel igaz -e vagy hamis a fenti példa szerint, vagy egy kódsorban logikai teszt alkalmazására - esetleg annak megállapítására, hogy az egyik érték nagyobb -e a másiknál.

12345678 Sub blnPélda ()'deklarálja a logikai változótDim blnA Mint Boolean'tesztelje, hogy az egyik szám nagyobb -e, mint a következőblnA = 45> 68'mutasd az üzenetdoboztMsgBox blnAEnd Sub

Ha futtatja a fenti kódot, akkor a következő üzenetmezőt fogja kapni.

mert persze a 45 nem nagyobb 68 -nál!

Boole -operátorok használata

Mivel a logikai változókat logikai összehasonlításban használják, az AND és az OR logikai operátorok segítségével tesztelhetjük, hogy egynél több feltétel igaz vagy hamis.

Az AND operátor használata

Az ÉS függvénnyel ellenőrizhetjük, hogy mindkét feltétel teljesül -e.

12345678 Sub blnPélda ()'deklarálja a logikai változótDim blnA Mint Boolean'az ÉS operátorral tesztelje, hogy mindkét feltétel teljesül -eblnA = 10> 13 És 15> 12'mutasd az üzenetdoboztMsgBox blnAEnd Sub

vagy futtathatjuk ugyanazt a tesztet egy If utasítás segítségével:

123456789101112 Sub blnPélda ()'deklarálja a logikai változótDim blnA Mint Boolean'az ÉS operátorral tesztelje, hogy mindkét feltétel teljesül -eHa 10> 13 És 15> 12 AkkorblnA = IgazMásblnA = HamisVége Ha'mutasd az üzenetdoboztMsgBox blnAEnd Sub

Mindkét példa visszatérne HAMIS annak a ténynek köszönhetően, hogy 10 NEM nagyobb, mint 13 - és MINDKÉT a feltételeknek igaznak kell lenniük ahhoz, hogy a logikai érték igaz legyen.

A VAGY operátor használata

Az OR függvény segítségével ellenőrizhetjük, hogy az egyik feltétel teljesül -e.

12345678 Sub blnPélda ()'deklarálja a logikai változótDim blnA Mint Boolean'az ÉS operátorral tesztelje, hogy mindkét feltétel teljesül -eblnA = 10> 13 Vagy 15> 12'mutasd az üzenetdoboztMsgBox blnAEnd Sub

vagy futtathatjuk ugyanazt a tesztet egy If utasítás segítségével:

123456789101112 Sub blnPélda ()'deklarálja a logikai változótDim blnA Mint Boolean'az ÉS operátorral tesztelje, hogy mindkét feltétel teljesül -eHa 10> 13 VAGY 15> 12 AkkorblnA = IgazMásblnA = HamisVége Ha'mutasd az üzenetdoboztMsgBox blnAEnd Sub

Ezek a példák visszatérnének IGAZ annak a ténynek köszönhetően, hogy 10 NEM nagyobb 13 -nál, DE 15 IS nagyobb 12 -nél - ésCSAK EGY feltételnek igaznak kell lennie, hogy a logikai érték igaz legyen.

Az If utasítások használatával logikusabb operátorokat használhatunk

A NOT operátor használata

Használhatjuk a NOT operátort a Boolean változóval is. A NOT operátor tagadja a feltétel értékét - tehát ha egy feltétel igaz, akkor a NOT operátor hamis értéket ad vissza.

12345678910111213141516 Sub FindDifferences ()'deklarálja a tartományváltozókatDim rng1 mint tartományDim rng2 mint tartomány'aktiválja az első lapotMunkalapok ("Sheet1"). Aktiválás'népesítse be a tartományokatSet rng1 = Tartomány ("A3")Set rng2 = Tartomány ("B3")'a NOT operátorral ellenőrizze, hogy az értékek egyenlők -e vagy sem.Ha nem rng1.Value = rng2.Value AkkorMsgBox "A cellák értékei nem egyenlőek"MásMsgBox "A cellák értékei egyenlők"Vége HaEnd Sub

A Xor logikai operátor használata

AzXor logikai operátor két vagy több feltétel összehasonlítására szolgál. Ha az egyik feltétel igaz, akkor IGAZ értéket ad vissza. Ha 2 feltétel van, és egyik sem igaz, vagy mindkettő igaz, akkor hamis lesz.

1234567891011121314151617 Sub blnPélda ()'deklarálják az egész számokatDim intA Mint egészDim intB Mint egész'deklarálja a logikai változótDim blnEredmény mint Boolean'töltse ki a változókatintA = 5intB = 10'ellenőrizze, hogy az egyik igaz -eHa intA = 5 Xor intB = 5 AkkorblnResult = IgazMásblnResult = HamisVége HaMsgBox blnResultEnd Sub

A fenti példában, mivel az egyik feltétel IGAZ, az üzenetdoboz visszatér IGAZ.

1234567891011121314151617 Sub blnPélda ()'deklarálják az egész számokatDim intA Mint egészDim intB Mint egész'deklarálja a logikai változótDim blnEredmény Booleanként'töltse ki a változókatintA = 5intB = 5'ellenőrizze, hogy az egyik igaz -eHa intA = 5 Xor intB = 5 AkkorblnResult = IgazMásblnResult = HamisVége HaMsgBox blnResultEnd Sub

A fenti példában azonban, mivel mindkét feltétel igaz, az üzenetdoboz visszatér HAMIS.

1234567891011121314151617 Sub blnPélda ()'deklarálják az egész számokatDim intA Mint egészDim intB Mint egész'deklarálja a logikai változótDim blnEredmény Booleanként'töltse ki a változókatintA = 6intB = 8'ellenőrizze, hogy az egyik igaz -eHa intA = 5 Xor intB = 5 AkkorblnResult = IgazMásblnResult = HamisVége HaMsgBox blnResultEnd Sub

és végül, mivel mindkét feltétel HAMIS, az üzenetdoboz is HAMIS értéket ad vissza.

Segít a fejlesztés a helyszínen, megosztva az oldalt a barátaiddal

wave wave wave wave wave