VBA loginis duomenų tipas (Dim kintamasis)

Loginis kintamasis tipas

VBA loginis duomenų tipas naudojamas teisingoms arba klaidingoms reikšmėms saugoti. Tiesa taip pat gali būti pavaizduota 1, o klaidinga - 0.

Norėdami deklaruoti loginį kintamąjį, naudokite Dim Statement (santrumpa Dimension):

1 Dim blnA kaip loginis

Tada, norėdami priskirti kintamojo vertę, tiesiog naudokite lygybės ženklą:

1 blnA = tiesa

Įvedus procedūrą, tai gali atrodyti taip:

123456789101112 Sub blnPavyzdys ()“paskelbti loginį kintamąjįDim blnA kaip loginis„paleiskite kodą, kad užpildytumėte kintamąjį - dažniausiai kodas yra„ if “arba„ case “teiginysJei diapazonas ("A1")> 0 tadablnA = tiesaKitasblnA = klaidingaPabaiga Jei“parodyti pranešimų laukelį„MsgBox“ „Bandymas, siekiant išsiaiškinti, ar ląstelės vertė yra didesnė nei 0“ & blnAPabaiga Sub

Jei paleisite aukščiau esantį kodą, bus parodytas šis pranešimų langas.

Būklės kintamojo paskelbimas modulyje arba pasauliniu lygiu

Ankstesniame pavyzdyje mes paskelbėme Būlinį kintamas procedūros metu. Kintamieji, deklaruojami naudojant procedūrą, gali būti naudojami tik tos procedūros metu.

Vietoj to, Boolean kintamuosius galite deklaruoti modulio ar visuotiniu lygiu.

Modulio lygis

Jūs deklaruojate Modulio lygis kintamuosius kodo modulių viršuje su Mat pareiškimas.

Šiuos kintamuosius galima naudoti atliekant bet kokias to kodo modulio procedūras.

Pasaulinis lygis

Jūs taip pat deklaruojate Pasaulinis lygis kintamuosius kodo modulių viršuje. Tačiau, užuot naudoję Mat pareiškimą, jūs naudosite Viešas pareiškimas, nurodantis, kad Būlinį kintamąjį galima naudoti visame VBA projekte.

1 Viešas blnA kaip loginis

Jei deklaruotumėte Būlinį kintamąjį modulio lygiu ir tada pabandykite jį naudoti kitame modulyje, gausite klaidą.

Tačiau, jei deklaracijai naudojote viešą raktinį žodį Būlinį kintamasis, klaida neįvyks ir procedūra veiks puikiai.

Naudojant loginį kintamąjį

Loginį palyginimą naudojate Boolean kintamuoju. Jie dažnai naudojami su „If“ teiginiais, norint patikrinti, ar sąlyga yra teisinga ar klaidinga, kaip nurodyta aukščiau pateiktame pavyzdyje, arba kodo eilutėje, kad būtų taikomas loginis testas - galbūt norėdami pamatyti, ar viena vertė yra didesnė už kitą.

12345678 Sub blnPavyzdys ()“paskelbti loginį kintamąjįDim blnA Kaip loginis“išbandykite, ar vienas skaičius yra didesnis už kitąblnA = 45> 68“parodyti pranešimų laukelį„MsgBox blnA“Pabaiga Sub

Jei paleisite aukščiau esantį kodą, gausite šį pranešimų laukelį.

Žinoma, 45 nėra didesnis nei 68!

Naudojant „Boolean“ operatorius

Kadangi loginis kintamasis naudojamas loginiam palyginimui, mes galime naudoti loginius operatorius AND ir OR, kad patikrintume, ar daugiau nei viena sąlyga yra teisinga ar klaidinga.

Naudojant operatorių AND

Mes galime naudoti funkciją AND, kad pamatytume, ar abi sąlygos yra įvykdytos.

12345678 Sub blnPavyzdys ()“paskelbti loginį kintamąjįDim blnA Kaip loginis„naudokite AND operatorių, kad patikrintumėte, ar abi sąlygos yra teisingosblnA = 10> 13 Ir 15> 12“parodyti pranešimų laukelį„MsgBox blnA“Pabaiga Sub

arba galėtume atlikti tą patį testą naudodami „If“ teiginį:

123456789101112 Sub blnPavyzdys ()“paskelbti loginį kintamąjįDim blnA Kaip loginis„naudokite AND operatorių, kad patikrintumėte, ar abi sąlygos yra teisingosJei 10> 13 Ir 15> 12 TadablnA = tiesaKitasblnA = klaidingaPabaiga Jei“parodyti pranešimų laukelį„MsgBox blnA“Pabaiga Sub

Abu aukščiau pateikti pavyzdžiai sugrįžtų NETIESA dėl to, kad 10 yra NE didesnis nei 13 - ir Abi Sąlygos turi būti teisingos, kad „Boolean“ būtų tiesa.

Naudojant OR operatorių

Mes galime naudoti funkciją ARBA, kad pamatytume, ar įvykdyta VIENA iš sąlygų.

12345678 Sub blnPavyzdys ()“paskelbti loginį kintamąjįDim blnA Kaip loginis„naudokite AND operatorių, kad patikrintumėte, ar abi sąlygos yra teisingosblnA = 10> 13 arba 15> 12“parodyti pranešimų laukelį„MsgBox blnA“Pabaiga Sub

arba galėtume atlikti tą patį testą naudodami „If“ teiginį:

123456789101112 Sub blnPavyzdys ()“paskelbti loginį kintamąjįDim blnA Kaip loginis„naudokite AND operatorių, kad patikrintumėte, ar abi sąlygos yra teisingosJei 10> 13 ARBA 15> 12 TadablnA = tiesaKitasblnA = klaidingaPabaiga Jei“parodyti pranešimų laukelį„MsgBox blnA“Pabaiga Sub

Šie pavyzdžiai sugrįžtų TIESA dėl to, kad 10 NĖRA didesnis nei 13 BET 15 yra didesnis nei 12 - irTIK VIENAS sąlyga turi būti teisinga, kad loginė vertė būtų tiesa.

„If“ teiginių naudojimas leidžia naudoti daugiau loginių operatorių

Naudojant NE operatorių

Taip pat galime naudoti NOT operatorių su Boolean kintamuoju. Operatorius NOT paneigia sąlygos vertę - taigi, jei sąlyga yra tiesa, NOT operatorius grąžins klaidingą.

12345678910111213141516 Sub FindDifferences ()“deklaruoti diapazono kintamuosiusDim rng1 Kaip diapazonasDim rng2 kaip diapazonas'suaktyvinkite pirmą lapąDarbo lapai („Sheet1“). Aktyvinti'užpildykite diapazonusNustatyti rng1 = Diapazonas ("A3")Nustatyti rng2 = Diapazonas ("B3")„naudokite NOT operatorių, kad pamatytumėte, ar vertės lygios, ar ne.Jei ne rng1.Value = rng2.Value Tada„MsgBox“ Ląstelių vertės nėra lygiosKitasMsgBox „Ląstelių vertės yra lygios“Pabaiga JeiPabaiga Sub

„Xor Logical Operator“ naudojimas

TheXor loginis operatorius naudojamas dviem ar daugiau sąlygų palyginti. Jei viena iš sąlygų yra teisinga, ji grąžins TIESA. Jei yra 2 sąlygos ir NIEKAS nėra teisingas arba Abi yra teisingos, tai grąžins klaidingą.

1234567891011121314151617 Sub blnPavyzdys ()“deklaruoja sveikuosius skaičiusDim intA As IntegerDim intB As Integer“paskelbti loginį kintamąjįDim blnResult As Boolean“užpildykite kintamuosiusintA = 5intB = 10“patikrinkite, ar viena tiesaJei intA = 5 X arba intB = 5 TadablnResult = TiesaKitasblnResult = NetiesaPabaiga JeiMsgBox blnResultPabaiga Sub

Anksčiau pateiktame pavyzdyje, kadangi VIENA iš sąlygų yra TIESA, pranešimų laukelis grįš TIESA.

1234567891011121314151617 Sub blnPavyzdys ()“deklaruoja sveikuosius skaičiusDim intA As IntegerDim intB As Integer“paskelbti loginį kintamąjįDim blnResult As Boolean“užpildykite kintamuosiusintA = 5intB = 5“patikrinkite, ar vienas iš jų yra tiesaJei intA = 5 X arba intB = 5 TadablnResult = TiesaKitasblnResult = NetiesaPabaiga JeiMsgBox blnResultPabaiga Sub

Tačiau aukščiau pateiktame pavyzdyje, kadangi abi sąlygos yra teisingos, pranešimų laukelis grįš NETIESA.

1234567891011121314151617 Sub blnPavyzdys ()“deklaruoja sveikuosius skaičiusDim intA As IntegerDim intB As Integer“paskelbti loginį kintamąjįDim blnResult As Boolean“užpildykite kintamuosiusintA = 6intB = 8“patikrinkite, ar vienas iš jų yra tiesaJei intA = 5 X arba intB = 5 TadablnResult = TiesaKitasblnResult = NetiesaPabaiga JeiMsgBox blnResultPabaiga Sub

ir galiausiai, kadangi abi sąlygos yra NETIESA, pranešimų laukelis taip pat grąžins FALSE.

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave