VBA loginiai operatoriai - OR, AND, XOR, NOT, IS ir LIKE

VBA leidžia naudoti loginius operatorius Ir, Arba, Ne, Xor lyginti vertybes. Operatoriai laikomi „loginiais“, o tai reiškia, kad jie grąžina „True“ arba „false“.

Jei norite sužinoti, kaip palyginti stygas, spustelėkite čia: VBA Palyginti stygas - StrComp

Jei norite sužinoti, kaip naudoti palyginimo operatorius, spustelėkite čia: VBA palyginimo operatoriai - nelygu ir daugiau

Naudojant ir loginį operatorių

The Ir loginis operatorius lygina dvi ar daugiau sąlygų. Jei visos sąlygos yra teisingos, operatorius grąžins „True“. Jei bent viena iš sąlygų nėra teisinga, operatorius grąžins klaidingą. Štai pavyzdys:

123456789101112 Dim intA As IntegerDim intB As IntegerDim blnResult As BooleanintA = 5intB = 5Jei intA = 5 Ir intB = 5 TadablnResult = TiesaKitasblnResult = NetiesaPabaiga Jei

Šiame pavyzdyje norime patikrinti, ar abu intA ir intB yra lygios 5. Jei tai tiesa, Boolean reikšmė blnResult bus tiesa, kitu atveju tai bus melas.

Pirmiausia nustatome reikšmes intA ir intB iki 5:

12 intA = 5intB = 5

Po to mes naudojame Ir operatorius If sakinyje, kad patikrintų, ar reikšmės yra lygios 5:

12345 Jei intA = 5 Ir intB = 5 TadablnResult = TiesaKitasblnResult = NetiesaPabaiga Jei

Kadangi abu kintamieji yra lygūs 5, blnResult grąžina tiesa:

Vaizdas 1. Naudojant loginį operatorių VBA

Arba loginio operatoriaus naudojimas

The Arba loginis operatorius lygina dvi ar daugiau sąlygų. Jei bent viena iš sąlygų yra teisinga, ji grįš tiesa. Jei nė viena iš sąlygų nėra teisinga, operatorius grąžins klaidingą. Štai pavyzdžio kodas:

123456789101112 Dim intA As IntegerDim intB As IntegerDim blnResult As BooleanintA = 5intB = 10Jei intA = 5 arba intB = 5 TadablnResult = TiesaKitasblnResult = NetiesaPabaiga Jei

Šiame pavyzdyje norime patikrinti, ar abu intA yra lygus 5. arba intB yra lygus 10. Jei kuri nors iš šių sąlygų yra teisinga, Boolean reikšmė blnResult bus tiesa, kitu atveju tai bus melas.

Pirmiausia nustatome reikšmę intA iki 5 ir intB iki 10:

12 intA = 5intB = 10

Po to mes naudojame Arba operatorius If sakinyje, kad patikrintų, ar kuri nors iš reikšmių yra lygi 5:

12345 Jei intA = 5 arba intB = 5 TadablnResult = TiesaKitasblnResult = NetiesaPabaiga Jei

Kaip intA vertė yra 5, blnResult grąžina tiesa:

2 paveikslas. Naudojant loginį operatorių VBA

Ne loginio operatoriaus naudojimas

The Ne loginis operatorius patikrina vieną ar daugiau sąlygų. Jei sąlygos yra teisingos, operatorius pateikia klaidingą. Priešingu atveju grąžinama tiesa. Štai pavyzdžio kodas:

12345678910 Dim intA As IntegerDim blnResult As BooleanintA = 5Jei ne (intA = 6) TadablnResult = TiesaKitasblnResult = NetiesaPabaiga Jei

Šiame pavyzdyje norime patikrinti, ar reikšmė intA nėra lygus 6. Jei intA yra kitoks nei 6, loginė vertė blnResult bus tiesa, kitu atveju tai bus melas.

Pirmiausia nustatome reikšmę intA iki 5:

1 intA = 5

Po to sakinyje „If“ naudojame operatorių „Not“, kad patikrintume, ar intA vertė skiriasi nuo 6:

12345 Jei ne (intA = 6) TadablnResult = TiesaKitasblnResult = NetiesaPabaiga Jei

Kaip intA vertė yra 5, blnResult grąžina tiesa:

3 paveikslas. Naudojant ne loginį operatorių VBA

„Xor Logical Operator“ naudojimas

The Xor loginis operatorius lygina dvi ar daugiau sąlygų. Jei tiksliai viena iš sąlygų yra teisinga, ji grįš tiesa. Jei nė viena iš sąlygų nėra teisinga arba daugiau nei viena yra teisinga, ji grąžins klaidingą. Štai pavyzdžio kodas:

123456789101112 Dim intA As IntegerDim intB As IntegerDim blnResult As BooleanintA = 5intB = 10Jei intA = 5 X arba intB = 5 TadablnResult = TiesaKitasblnResult = NetiesaPabaiga Jei

Šiame pavyzdyje norime patikrinti, ar tiksliai viena iš reikšmių (intA arba IntB) yra lygi 5. Jei teisinga tik viena sąlyga, loginės vertės blnResult bus tiesa, kitu atveju tai bus melas.

Pirmiausia nustatome reikšmę intA iki 5 ir intB iki 10:

12 intA = 5intB = 10

Po to mes naudojame Arba operatorius If sakinyje, kad patikrintų, ar kuri nors iš reikšmių yra lygi 5:

12345 Jei intA = 5 X arba intB = 5 TadablnResult = TiesaKitasblnResult = NetiesaPabaiga Jei

Kaip intA vertė yra 5 ir intB yra 10, blnResult grąžina tiesa:

4 paveikslas. Naudojant Xor loginį operatorių VBA

Yra Operatorius

„Is Operator“ patikrina, ar du objekto kintamieji saugo tą patį objektą.

Pažvelkime į pavyzdį. Čia darbalapio objektams rng1 ir rng2 priskirsime du darbalapius, patikrindami, ar abu darbalapio objektai saugo tą patį darbalapį:

12345678910111213 Sub CompareObjects ()Dim ws1 kaip darbalapis, ws2 kaip darbalapisNustatyti ws1 = Lakštai („Lapas1“)Nustatyti ws2 = Lakštai („Lapas2“)Jei ws1 Ar ws2 Tada„MsgBox“ „Tas pats WS“Kitas„MsgBox“ skirtingi WSPabaiga JeiPabaiga Sub

Žinoma, darbalapio objektai nėra vienodi, todėl grąžinamas „Skirtingi WS“.

Kaip Operatorė

„Like“ operatorius gali palyginti dvi eilutes, kad gautų netikslias atitiktis. Šis pavyzdys patikrins, ar eilutė prasideda „Mr.“

1234567891011121314 Sub LikeDemo ()Dim strName As StringDim blnResult As BooleanstrName = "Ponas Michaelas Jamesas"Jei strName Kaip „Ponas*“, tadablnResult = TiesaKitasblnResult = NetiesaPabaiga JeiPabaiga Sub

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

wave wave wave wave wave