VBA vă permite să utilizați operatorii logici Și, Sau, Nu, Xor pentru a compara valori. Operatorii sunt considerați „booleni”, ceea ce înseamnă că returnează True sau False ca rezultat.
Dacă doriți să aflați cum să comparați șirurile, faceți clic aici: VBA Compare Strings - StrComp
Dacă doriți să aflați cum să utilizați operatori de comparație, faceți clic aici: Operatori de comparație VBA - Nu este egal cu și mai mult
Folosind operatorul logic
The Și operatorul logic compară două sau mai multe condiții. Dacă toate condițiile sunt adevărate, operatorul va returna True. Dacă cel puțin una dintre condiții nu este adevărată, operatorul va returna False. Iată un exemplu:
123456789101112 | Dim intA As IntegerDim intB Ca întregDim blnResultat ca booleanintA = 5intB = 5Dacă intA = 5 Și intB = 5 AtunciblnResult = AdevăratAltfelblnResult = FalseEnd If |
În acest exemplu, vrem să verificăm dacă ambele intA și intB sunt egale cu 5. Dacă acest lucru este adevărat, valoarea lui Boolean blnResult va fi adevărat, altfel va fi fals.
Mai întâi, stabilim valori de intA și intB la 5:
12 | intA = 5intB = 5 |
După aceea, folosim Și operator din instrucțiunea If pentru a verifica dacă valorile sunt egale cu 5:
12345 | Dacă intA = 5 Și intB = 5 AtunciblnResult = AdevăratAltfelblnResult = FalseEnd If |
Deoarece ambele variabile sunt egale cu 5, blnResult returnează True:
Imagine 1. Utilizarea operatorului Și logic în VBA
Folosind Operatorul Sau Logic
The Sau operatorul logic compară două sau mai multe condiții. Dacă cel puțin una dintre condiții este adevărată, va reveni la adevărat. Dacă niciuna dintre condiții nu este adevărată, operatorul va returna False. Iată codul pentru exemplu:
123456789101112 | Dim intA As IntegerDim intB Ca întregDim blnResultat ca booleanintA = 5intB = 10Dacă intA = 5 Sau intB = 5 AtunciblnResult = AdevăratAltfelblnResult = FalseEnd If |
În acest exemplu, vrem să verificăm dacă ambele intA este egal cu 5. sau intB este egal cu 10. Dacă oricare dintre aceste condiții este adevărată, valoarea lui Boolean blnResult va fi adevărat, altfel va fi fals.
În primul rând, stabilim valoarea lui intA la 5 și intB la 10:
12 | intA = 5intB = 10 |
După aceea, folosim Sau operator din instrucțiunea If pentru a verifica dacă oricare dintre valori este egală cu 5:
12345 | Dacă intA = 5 Sau intB = 5 AtunciblnResult = AdevăratAltfelblnResult = FalseEnd If |
La fel de intA valoarea este 5, valoarea blnResult returnează True:
Imaginea 2. Utilizarea operatorului Sau logic în VBA
Utilizarea operatorului care nu este logic
The Nu operatorul logic verifică una sau mai multe condiții. Dacă condițiile sunt adevărate, operatorul returnează False. În caz contrar, returnează True. Iată codul pentru exemplu:
12345678910 | Dim intA As IntegerDim blnResultat ca booleanintA = 5Dacă nu (intA = 6) AtunciblnResult = AdevăratAltfelblnResult = FalseEnd If |
În acest exemplu, dorim să verificăm dacă valoarea lui intA nu este egal cu 6. Dacă intA este diferit de 6, valoarea lui Boolean blnResult va fi adevărat, altfel va fi fals.
În primul rând, stabilim valoarea lui intA la 5:
1 | intA = 5 |
După aceea, folosim operatorul Not din instrucțiunea If pentru a verifica dacă valoarea intA este diferită de 6:
12345 | Dacă nu (intA = 6) AtunciblnResult = AdevăratAltfelblnResult = FalseEnd If |
La fel de intA valoarea este 5, valoarea blnResult returnează True:
Imaginea 3. Utilizarea operatorului Not logic în VBA
Utilizarea operatorului logic Xor
The Xor operatorul logic compară două sau mai multe condiții. Dacă exact una dintre condiții este adevărată, va reveni la adevărat. Dacă niciuna dintre condiții nu este adevărată, sau mai multe decât una sunt adevărate, se va întoarce False. Iată codul pentru exemplu:
123456789101112 | Dim intA As IntegerDim intB Ca întregDim blnResultat ca booleanintA = 5intB = 10Dacă intA = 5 Xor intB = 5 AtunciblnResult = AdevăratAltfelblnResult = FalseEnd If |
În acest exemplu, vrem să verificăm dacă exact una dintre valori (intA sau IntB) este egală cu 5. Dacă este adevărată o singură condiție, valoarea lui Boolean blnResult va fi adevărat, altfel va fi fals.
În primul rând, stabilim valoarea lui intA la 5 și intB la 10:
12 | intA = 5intB = 10 |
După aceea, folosim Sau operator din instrucțiunea If pentru a verifica dacă oricare dintre valori este egală cu 5:
12345 | Dacă intA = 5 Xor intB = 5 AtunciblnResult = AdevăratAltfelblnResult = FalseEnd If |
La fel de intA valoarea este 5 și intB este 10, blnResult returnează True:
Imaginea 4. Utilizarea operatorului logic Xor în VBA
Este Operator
Operatorul Is testează dacă două variabile de obiect stochează același obiect.
Să vedem un exemplu. Aici vom atribui două foi de lucru obiectelor foii de lucru rng1 și rng2, testând dacă cele două obiecte ale foii de lucru stochează aceeași foaie de lucru:
12345678910111213 | Sub CompareObjects ()Dim ws1 ca foaie de lucru, ws2 ca foaie de lucruSet ws1 = Foi ("Sheet1")Set ws2 = Foi ("Sheet2")Dacă ws1 este ws2 AtunciMsgBox „Same WS”AltfelMsgBox „WS-uri diferite”End IfSfârșitul Sub |
Desigur, obiectele foii de lucru nu sunt aceleași, așa că „WS-uri diferite” este returnat.
Ca Operator
Operatorul Like poate compara două șiruri pentru potriviri inexacte. Acest exemplu va testa dacă un șir începe cu „Mr.”
1234567891011121314 | Sub LikeDemo ()Dim strName As StringDim blnResultat ca booleanstrName = "Domnul Michael James"Dacă strName Ca „Mr. *” AtunciblnResult = AdevăratAltfelblnResult = FalseEnd IfSfârșitul Sub |