Logični podatkovni tip VBA (zatemnjena spremenljivka)

Logična vrsta spremenljivke

Podatkovni tip VBA Boolean se uporablja za shranjevanje vrednosti True ali False. True lahko predstavljamo tudi z 1, False pa z 0.

Za razglasitev logične spremenljivke uporabite stavek Dim (okrajšava za Dimension):

1 Dim blnA kot Boolean

Potem, če želite spremenljivki dodeliti vrednost, preprosto uporabite znak enako:

1 blnA = Res

Ko to vnesete v postopek, bi to lahko izgledalo tako:

123456789101112 Sub blnExample ()'razglasi logično spremenljivkoDim blnA kot Boolean'zaženi kodo, da zapolni spremenljivko - običajno je koda stavek if ali caseČe je obseg ("A1")> 0, potemblnA = resSicer pablnA = NapačnoKonec Če'pokaži polje s sporočilomMsgBox "Preverjanje, ali ima celica vrednost večjo od 0, je" & blnAEnd Sub

Če zaženete zgornjo kodo, se prikaže naslednje polje s sporočilom.

Razglasite logično spremenljivko na modularni ali globalni ravni

V prejšnjem primeru smo razglasili Logično spremenljivko v postopku. Spremenljivke, deklarirane s postopkom, se lahko uporabljajo samo v tem postopku.

Namesto tega lahko deklarirate logične spremenljivke na ravni modula ali na globalni ravni.

Raven modula

Izjavljate Raven modula spremenljivke na vrhu kodnih modulov z Dim izjavo.

Te spremenljivke je mogoče uporabiti s katerim koli postopkom v tem kodnem modulu.

Globalna raven

Izjavljate tudi Globalna raven spremenljivke na vrhu kodnih modulov. Namesto da uporabite Dim izjavo, bi uporabili Javno izjavo, ki nakazuje, da je Logično spremenljivka je na voljo za uporabo v celotnem projektu VBA.

1 Javna blnA kot Booleova

Če bi razglasili Logično spremenljivko na ravni modula in jo nato poskusite uporabiti v drugem modulu, bi prišlo do napake.

Če pa ste za objavo datoteke uporabili ključno besedo Public Logično spremenljivke, do napake ne bi prišlo in postopek bi deloval brezhibno.

Uporaba logične spremenljivke

Boolovo spremenljivko uporabljate pri logični primerjavi. Te se pogosto uporabljajo z izjavami If za preverjanje, ali je pogoj True ali False, kot je prikazano v zgornjem primeru, ali v vrstici kode za uporabo logičnega testa - morda za preverjanje, ali je ena vrednost večja od druge.

12345678 Sub blnExample ()'razglasi logično spremenljivkoDim blnA Kot Boolean'Preverite, ali je eno število večje od naslednjegablnA = 45> 68'pokaži polje s sporočilomMsgBox blnAEnd Sub

Če zaženete zgornjo kodo, boste dobili naslednje polje s sporočilom.

ker seveda 45 ni večji od 68!

Uporaba logičnih operaterjev

Ker se logične primerjave uporabljajo logične spremenljivke, lahko z logičnimi operaterji AND in OR preskusimo, ali je več kot en pogoj resničen ali napačen.

Uporaba operaterja AND

S funkcijo AND lahko preverimo, ali sta izpolnjena oba pogoja.

12345678 Sub blnExample ()'razglasi logično spremenljivkoDim blnA Kot Boolean'Z operaterjem AND preskusite, ali sta oba pogoja resničnablnA = 10> 13 In 15> 12'pokaži polje s sporočilomMsgBox blnAEnd Sub

ali pa bi lahko izvedli isti test z uporabo stavka If:

123456789101112 Sub blnExample ()'razglasi logično spremenljivkoDim blnA Kot Boolean'Z operaterjem AND preskusite, ali sta oba pogoja resničnaČe je 10> 13 in 15> 12, potemblnA = ResSicer pablnA = NapačnoKonec Če'pokaži polje s sporočilomMsgBox blnAEnd Sub

Oba zgornja primera bi se vrnila LAŽNO zaradi dejstva, da je 10 NE več kot 13 - in OBOJE pogoji morajo biti resnični, da je logična vrednost resnična.

Uporaba operaterja OR

S funkcijo OR lahko preverimo, ali je Eden od pogojev izpolnjen.

12345678 Sub blnExample ()'razglasi logično spremenljivkoDim blnA Kot Boolean'Z operaterjem AND preskusite, ali sta oba pogoja resničnablnA = 10> 13 Ali 15> 12'pokaži polje s sporočilomMsgBox blnAEnd Sub

ali pa bi lahko izvedli isti test z uporabo stavka If:

123456789101112 Sub blnExample ()'razglasi logično spremenljivkoDim blnA Kot Boolean'Z operaterjem AND preskusite, ali sta oba pogoja resničnaČe je 10> 13 ALI 15> 12 PotemblnA = ResSicer pablnA = NapačnoKonec Če'pokaži polje s sporočilomMsgBox blnAEnd Sub

Ti primeri bi se vrnili PRAV zaradi dejstva, da 10 ni večje od 13, ampak 15 je večje od 12 - inSAMO EN pogoj mora biti True, da je Boolean res.

Uporaba stavkov If nam omogoča uporabo več logičnih operatorjev

Uporaba operaterja NOT

Z logično spremenljivko lahko uporabimo tudi operator NOT. Operater NOT zanika vrednost pogoja - zato, če je pogoj resničen, bo operater NOT vrnil false.

12345678910111213141516 Sub FindDifferences ()'razglasite spremenljivke obsegaDim rng1 As RangeDim rng2 As Range'aktiviraj prvi listDelovni listi ("List1"). Aktivirajte'naselijo območjaNastavi rng1 = Razpon ("A3")Nastavi rng2 = Razpon ("B3")'z operatorjem NOT preverite, ali so vrednosti enake ali ne.Če ni rng1.Value = rng2.Value PotemMsgBox "Vrednosti v celicah niso enake"Sicer paMsgBox "Vrednosti v celicah so enake"Konec ČeEnd Sub

Uporaba logičnega operaterja Xor

TheXor logični operater se uporablja za primerjavo dveh ali več pogojev. Če je eden od pogojev resničen, se vrne TRUE. Če obstajata 2 pogoja, NI NI resnična ali OBA pa sta resnična, se vrne FALSE.

1234567891011121314151617 Sub blnExample ()'razglasite cela številaZatemni into kot celo številoZatemni intB kot celo število'razglasi logično spremenljivkoDim blnResult Kot Boolean'napolni spremenljivkeintA = 5intB = 10'preveri, če je resČe je intA = 5 Xor intB = 5 PotemblnResult = ResSicer pablnResult = NeresničnoKonec ČeMsgBox blnResultEnd Sub

V zgornjem primeru, ker je Eden od pogojev TRUE, se bo sporočilo vrnilo PRAV.

1234567891011121314151617 Sub blnExample ()'razglasite cela številaZatemni into kot celo številoZatemni intB kot celo število'razglasi logično spremenljivkoDim blnResult Kot Boolean'napolni spremenljivkeintA = 5intB = 5'preveri, če je resČe je intA = 5 Xor intB = 5 PotemblnResult = ResSicer pablnResult = FalseKonec ČeMsgBox blnResultEnd Sub

Vendar se bo v zgornjem primeru, ker sta oba pogoja resnična, sporočilo vrnilo LAŽNO.

1234567891011121314151617 Sub blnExample ()'razglasite cela številaZatemni into kot celo številoZatemni intB kot celo število'razglasi logično spremenljivkoDim blnResult Kot Boolean'napolni spremenljivkeintA = 6intB = 8'preveri, če je resČe je intA = 5 Xor intB = 5 PotemblnResult = ResSicer pablnResult = FalseKonec ČeMsgBox blnResultEnd Sub

in nazadnje, ker sta oba pogoja FALSE, se bo tudi sporočilo vrnilo FALSE.

Vam bo pomagal razvoj spletnega mesta, ki si delijo stran s svojimi prijatelji

wave wave wave wave wave