VBA vam omogućuje korištenje logičkih operatora I, Ili, Ne, Xor za usporedbu vrijednosti. Operatori se smatraju "Boolean", što znači da kao rezultat vraćaju True ili False.
Ako želite naučiti uspoređivati nizove, kliknite ovdje: VBA Usporedi nizove - StrComp
Ako želite naučiti kako koristiti operatore za usporedbu, kliknite ovdje: VBA Operatori za usporedbu - nije jednako & više
Korištenje operatora And Logical Operator
The I logički operator uspoređuje dva ili više uvjeta. Ako su svi uvjeti istiniti, operator će vratiti True. Ako barem jedan od uvjeta nije istinit, operator će vratiti False. Evo primjera:
123456789101112 | Dim intA kao cijeli brojDim intB kao cijeli brojDim blnResult Kao BooleanintA = 5intB = 5Ako je intA = 5 I intB = 5 TadablnResult = IstinaDrugoblnResult = NetačnoZavrši ako |
U ovom primjeru želimo provjeriti jesu li oboje intA i intB jednaki su 5. Ako je to točno, vrijednost Booleova blnResult bit će istina, u protivnom će biti netočna.
Prvo postavljamo vrijednosti intA i intB do 5:
12 | intA = 5intB = 5 |
Nakon toga koristimo I operator u naredbi If provjerava jesu li vrijednosti jednake 5:
12345 | Ako je intA = 5 I intB = 5 TadablnResult = IstinaDrugoblnResult = NetačnoZavrši ako |
Kako su obje varijable jednake 5, blnResult vraća True:
Slika 1. Upotreba logičkog operatora And u VBA
Korištenje ili logičkog operatora
The Ili logički operator uspoređuje dva ili više uvjeta. Ako je barem jedan od uvjeta istinit, vratit će se True. Ako nijedan od uvjeta nije istinit, operator će vratiti False. Evo koda za primjer:
123456789101112 | Dim intA kao cijeli brojDim intB kao cijeli brojDim blnResult Kao BooleanintA = 5intB = 10Ako je intA = 5 Ili intB = 5 TadablnResult = IstinaDrugoblnResult = NetačnoZavrši ako |
U ovom primjeru želimo provjeriti jesu li oboje intA jednak je 5. ili intB jednaka je 10. Ako je bilo koji od ovih uvjeta istinit, vrijednost Booleova blnResult bit će istina, u protivnom će biti netočna.
Prvo smo postavili vrijednost intA do 5 i intB do 10:
12 | intA = 5intB = 10 |
Nakon toga koristimo Ili operator u naredbi If provjerava je li neka od vrijednosti jednaka 5:
12345 | Ako je intA = 5 Ili intB = 5 TadablnResult = IstinaDrugoblnResult = NetačnoZavrši ako |
Kao intA vrijednost je 5, blnResult vraća True:
Slika 2. Upotreba logičkog operatora Or u VBA
Korištenje nelogičnog operatora
The Ne logički operator provjerava jedan ili više uvjeta. Ako su uvjeti istiniti, operator vraća False. U suprotnom slučaju vraća True. Evo koda za primjer:
12345678910 | Dim intA kao cijeli brojDim blnResult Kao BooleanintA = 5Ako nije (intA = 6) tadablnResult = IstinaDrugoblnResult = NetačnoZavrši ako |
U ovom primjeru želimo provjeriti je li vrijednost intA nije jednako 6. Ako intA je različita od 6, vrijednost Booleove vrijednosti blnResult bit će istina, u protivnom će biti netočna.
Prvo smo postavili vrijednost intA do 5:
1 | intA = 5 |
Nakon toga koristimo operator Not u naredbi If kako bismo provjerili je li vrijednost intA različita od 6:
12345 | Ako nije (intA = 6) tadablnResult = IstinaDrugoblnResult = NetačnoZavrši ako |
Kao intA vrijednost je 5, blnResult vraća True:
Slika 3. Korištenje operatora Nije logično u VBA
Korištenje Xor logičkog operatora
The Xor logički operator uspoređuje dva ili više uvjeta. Ako je točno jedan od uvjeta istinit, vratit će se True. Ako nijedan uvjet nije istinit ili je više od jednog istinito, vratit će se Netačno. Evo koda za primjer:
123456789101112 | Dim intA kao cijeli brojDim intB kao cijeli brojDim blnResult Kao BooleanintA = 5intB = 10Ako je intA = 5 Xor intB = 5 TadablnResult = IstinaDrugoblnResult = NetačnoZavrši ako |
U ovom primjeru želimo provjeriti je li točno jedna od vrijednosti (intA ili IntB) jednaka 5. Ako je samo jedan uvjet istinit, vrijednost Boolean blnResult bit će istina, u protivnom će biti netočna.
Prvo smo postavili vrijednost intA do 5 i intB do 10:
12 | intA = 5intB = 10 |
Nakon toga koristimo Ili operator u naredbi If provjerava je li neka od vrijednosti jednaka 5:
12345 | Ako je intA = 5 Xor intB = 5 TadablnResult = IstinaDrugoblnResult = NetačnoZavrši ako |
Kao intA vrijednost je 5 i intB je 10, blnResult vraća True:
Slika 4. Upotreba logičkog operatora Xor u VBA -i
Je Operator
Operator Is testira ako dvije varijable objekta pohranjuju isti objekt.
Pogledajmo primjer. Ovdje ćemo objektima radnog lista rng1 i rng2 dodijeliti dva radna lista, testirajući pohranjuju li dva objekta radnog lista isti radni list:
12345678910111213 | Sub CompareObjects ()Zatamni ws1 kao radni list, ws2 kao radni listPostavi ws1 = Tablice ("List 1")Postavi ws2 = Tablice ("List 2")Ako je ws1 Je ws2 TadaMsgBox "Isti WS"DrugoMsgBox "Različiti WS -ovi"Završi akoKraj podm |
Naravno, objekti radnog lista nisu isti, pa se vraća “Different WSs”.
Kao Operater
Operator Like može usporediti dva niza za netočna podudaranja. Ovaj primjer će provjeriti počinje li niz s "Mr."
1234567891011121314 | Sub LikeDemo ()Dim strName As StringDim blnResult Kao BooleanstrName = "Gospodin Michael James"Ako strName poput "Mr*" TadablnResult = IstinaDrugoblnResult = NetačnoZavrši akoKraj podm |