Logični operaterji VBA - OR, AND, XOR, NOT, IS in LIKE

VBA vam omogoča uporabo logičnih operaterjev In, Or, Ne, Xor primerjati vrednosti. Operaterji veljajo za "Boolean", kar pomeni, da kot rezultat vrnejo vrednost True ali False.

Če se želite naučiti primerjati strune, kliknite tukaj: VBA Primerjaj strune - StrComp

Če se želite naučiti uporabljati primerjalne operaterje, kliknite tukaj: Primerjalni operaterji VBA - ni enako & več

Uporaba operaterja And Logical Operator

The In logični operater primerja dva ali več pogojev. Če so vsi pogoji resnični, bo operater vrnil True. Če vsaj eden od pogojev ne drži, bo operater vrnil False. Tukaj je primer:

123456789101112 Zatemni into kot celo številoZatemni intB kot celo številoDim blnResult Kot BooleanintA = 5intB = 5Če je intA = 5 In intB = 5 PotemblnResult = ResSicer pablnResult = FalseKonec Če

V tem primeru želimo preveriti, ali sta oba intA in intB so enaki 5. Če je to res, je vrednost logične vrednosti blnResult bo res, sicer bo napačno.

Najprej določimo vrednosti intA in intB do 5:

12 intA = 5intB = 5

Po tem uporabljamo In operator v stavku If preveri, ali so vrednosti enake 5:

12345 Če je intA = 5 In intB = 5 PotemblnResult = ResSicer pablnResult = FalseKonec Če

Ker sta obe spremenljivki enaki 5, je blnResult vrne True:

Slika 1. Uporaba logičnega operaterja And v VBA

Z uporabo logičnega operaterja

The Or logični operater primerja dva ali več pogojev. Če je vsaj eden od pogojev resničen, se vrne res. Če noben od pogojev ne drži, bo operater vrnil False. Tu je koda za primer:

123456789101112 Zatemni into kot celo številoZatemni intB kot celo številoDim blnResult Kot BooleanintA = 5intB = 10Če je intA = 5 Ali intB = 5 PotemblnResult = ResSicer pablnResult = FalseKonec Če

V tem primeru želimo preveriti, ali sta oba intA je enako 5. oz intB je enaka 10. Če je kateri od teh pogojev resničen, je vrednost Boolean blnResult bo res, sicer bo napačno.

Najprej določimo vrednost intA do 5 in intB do 10:

12 intA = 5intB = 10

Po tem uporabljamo Or operator v stavku If preveri, ali je katera od vrednosti enaka 5:

12345 Če je intA = 5 Ali intB = 5 PotemblnResult = ResSicer pablnResult = FalseKonec Če

As intA vrednost je 5, blnResult vrne True:

Slika 2. Uporaba logičnega operaterja Or v VBA

Uporaba nelogičnega operaterja

The Ne logični operater preveri enega ali več pogojev. Če so pogoji resnični, operater vrne False. V nasprotnem primeru vrne True. Tu je koda za primer:

12345678910 Zatemni into kot celo številoDim blnResult Kot BooleanintA = 5Če ne (intA = 6), potemblnResult = ResSicer pablnResult = FalseKonec Če

V tem primeru želimo preveriti, ali je vrednost intA ni enako 6. Če intA je drugačna od 6, vrednost Boolean blnResult bo res, sicer bo napačno.

Najprej določimo vrednost intA do 5:

1 intA = 5

Po tem uporabimo operator Not v stavku If, da preverimo, ali je vrednost intA drugačna od 6:

12345 Če ne (intA = 6), potemblnResult = ResSicer pablnResult = FalseKonec Če

As intA vrednost je 5, blnResult vrne True:

Slika 3. Uporaba operaterja Not logic v VBA

Uporaba logičnega operaterja Xor

The Xor logični operater primerja dva ali več pogojev. Če je natančno eden od pogojev resničen, se vrne res. Če nobeden od pogojev ni resničen ali pa je več kot en, bo vrnil False. Tu je koda za primer:

123456789101112 Zatemni into kot celo številoZatemni intB kot celo številoDim blnResult Kot BooleanintA = 5intB = 10Če je intA = 5 Xor intB = 5 PotemblnResult = ResSicer pablnResult = FalseKonec Če

V tem primeru želimo preveriti, ali je ena od vrednosti (intA ali IntB) enaka 5. Če je izpolnjen le en pogoj, je vrednost Boolean blnResult bo res, sicer bo napačno.

Najprej določimo vrednost intA do 5 in intB do 10:

12 intA = 5intB = 10

Po tem uporabljamo Or operator v stavku If preveri, ali je katera od vrednosti enaka 5:

12345 Če je intA = 5 Xor intB = 5 PotemblnResult = ResSicer pablnResult = FalseKonec Če

As intA vrednost je 5 in intB je 10, blnResult vrne True:

Slika 4. Uporaba logičnega operaterja Xor v VBA

Je Operater

Operater Is preizkusi, ali dve spremenljivki objektov shranita isti predmet.

Poglejmo primer. Tu bomo objektom delovnega lista rng1 in rng2 dodelili dva delovna lista, pri čemer bomo preizkusili, ali dva predmeta delovnega lista shranita isti delovni list:

12345678910111213 Sub CompareObjects ()Zatemni ws1 kot delovni list, ws2 kot delovni listSet ws1 = Listi ("List1")Set ws2 = Listi ("List2")Če je ws1 Is ws2 PotemMsgBox "Isti WS"Sicer paMsgBox "Različni WS -ji"Konec ČeEnd Sub

Seveda predmeti delovnega lista niso enaki, zato se vrne »Različni WS«.

Tako kot operater

Operater Like lahko primerja dva niza za netočna ujemanja. Ta primer bo preizkusil, ali se niz začne z "Mr."

1234567891011121314 Sub LikeDemo ()Dim strName As StringDim blnResult Kot BooleanstrName = "Gospod Michael James"Če strName kot "gospod*", potemblnResult = ResSicer pablnResult = FalseKonec ČeEnd Sub

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

wave wave wave wave wave