Logička vrsta varijable
VBA Boolean tip podataka koristi se za spremanje True ili False vrijednosti. Točno se također može predstaviti s 1, a netočno s 0.
Za deklariranje Booleove varijable koristite izraz Dim (skraćeno od Dimension):
1 | Dim blnA kao Booleov |
Zatim, da biste dodijelili vrijednost varijabli, jednostavno upotrijebite znak jednakosti:
1 | blnA = Istina |
Kada ovo stavite u postupak, to bi moglo izgledati ovako:
123456789101112 | Pod blnExample ()'deklarirati booleanu varijabluDim blnA kao Booleov'pokrenite kôd za popunjavanje varijable - obično je kôd naredba if ili caseAko je raspon ("A1")> 0 tadablnA = istinaDrugoblnA = NetočnoZavrši ako'prikazati okvir s porukomMsgBox "Test za provjeru ima li ćelija vrijednost veću od 0 je" & blnAKraj podm |
Ako pokrenete gornji kôd, prikazat će se sljedeći okvir s porukom.
Deklarirajte Boolean varijablu na modulu ili globalnoj razini
U prethodnom primjeru smo proglasili Booleov varijabla unutar postupka. Varijable deklarirane postupkom mogu se koristiti samo unutar tog postupka.
Umjesto toga, možete proglasiti Booleove varijable na modulu ili globalnoj razini.
Razina modula
Izjavljujete Razina modula varijable na vrhu modula koda sa Dim izjava.
Ove se varijable mogu koristiti sa bilo kojim postupkom u tom kodnom modulu.
Globalna razina
Također izjavljujete Globalna razina varijable na vrhu modula koda. Međutim, umjesto korištenja Dim izjavu, koristili biste Javnost izjava koja ukazuje da je Booleov varijabla dostupna je za korištenje u cijelom vašem VBA projektu.
1 | Javna blnA kao Booleova |
Ako biste proglasili Booleov varijable na razini modula, a zatim je pokušajte koristiti u drugom modulu, dobit ćete pogrešku.
Međutim, da ste za objavu datoteke koristili ključnu riječ Public Booleov varijable, greška se ne bi dogodila i postupak bi savršeno funkcionirao.
Korištenje Booleove varijable
Booleovu varijablu koristite u logičkoj usporedbi. Oni se često koriste s naredbama If za provjeru je li uvjet True ili False prema gore navedenom primjeru, ili u retku koda za primjenu logičkog testa - možda da se vidi je li jedna vrijednost veća od druge.
12345678 | Pod blnExample ()'deklarirati booleanu varijabluDim blnA Kao Booleov'provjerite je li jedan broj veći od sljedećegblnA = 45> 68'prikazati okvir s porukomMsgBox blnAKraj podm |
Ako pokrenete gornji kôd, dobit ćete sljedeći okvir s porukom.
jer naravno 45 nije veći od 68!
Korištenje Booleovih operatora
Kako se Booleove varijable koriste u logičkoj usporedbi, možemo koristiti logičke operatore AND i OR za testiranje da vidimo je li više uvjeta istinito ili netočno.
Korištenje operatora AND
Pomoću funkcije AND možemo vidjeti jesu li ispunjena OBA uvjeta.
12345678 | Pod blnExample ()'deklarirati booleanu varijabluDim blnA Kao Booleov'pomoću operatora AND provjerite jesu li oba uvjeta istinitablnA = 10> 13 i 15> 12'prikazati okvir s porukomMsgBox blnAKraj podm |
ili bismo mogli pokrenuti isti test koristeći If Statement:
123456789101112 | Pod blnExample ()'deklarirati booleanu varijabluDim blnA Kao Booleov'pomoću operatora AND provjerite jesu li oba uvjeta istinitaAko je 10> 13 i 15> 12 TadablnA = IstinaDrugoblnA = NetočnoZavrši ako'prikazati okvir s porukomMsgBox blnAKraj podm |
Oba gornja primjera bi se vratila LAŽNO zbog činjenice da je 10 NE veći od 13 - i OBA uvjeti moraju biti istiniti da bi logičko stanje bilo istinito.
Korištenje operatora OR
Pomoću funkcije OR možemo vidjeti je li JEDAN od uvjeta ispunjen.
12345678 | Pod blnExample ()'deklarirati booleanu varijabluDim blnA Kao Booleov'pomoću operatora AND provjerite jesu li oba uvjeta istinitablnA = 10> 13 Ili 15> 12'prikazati okvir s porukomMsgBox blnAKraj podm |
ili bismo mogli pokrenuti isti test koristeći If Statement:
123456789101112 | Pod blnExample ()'deklarirati booleanu varijabluDim blnA Kao Booleov'pomoću operatora AND provjerite jesu li oba uvjeta istinitaAko je 10> 13 ILI 15> 12 TadablnA = IstinaDrugoblnA = NetočnoZavrši ako'prikazati okvir s porukomMsgBox blnAKraj podm |
Ti bi se primjeri vratili PRAVI zbog činjenice da 10 NIJE veće od 13 ALI 15 JE veće od 12 - iSAMO JEDAN uvjet mora biti True da bi Boolean bio True.
Korištenje naredbi If omogućuje nam korištenje više logičkih operatora
Korištenje operatora NOT
Također možemo koristiti operator NOT s Booleovom varijablom. Operator NOT negira vrijednost uvjeta - pa ako je uvjet istinit, operator NOT će vratiti vrijednost false.
12345678910111213141516 | Sub FindDifferences ()'deklariraju varijable rasponaDim rng1 As RangeDim rng2 As Range'aktivirajte prvi listRadni listovi ("List1"). Aktivirajte'popuniti rasponePostavi rng1 = Raspon ("A3")Postavi rng2 = Raspon ("B3")'koristite operator NOT da vidite jesu li vrijednosti jednake ili ne.Ako nije rng1.Vrednost = rng2.Vrijednost TadaMsgBox "Vrijednosti u ćelijama nisu jednake"DrugoMsgBox "Vrijednosti u ćelijama su jednake"Završi akoKraj podm |
Korištenje Xor logičkog operatora
TheXor logički operator koristi se za usporedbu dva ili više uvjeta. Ako je jedan od uvjeta istinit, vratit će se TRUE. Ako postoje 2 uvjeta, a NITI su istiniti ili OBA su istiniti, vratit će se FALSE.
1234567891011121314151617 | Pod blnExample ()'deklarirajte cijele brojeveDim intA kao cijeli brojDim intB kao cijeli broj'deklarirati booleanu varijabluDim blnResult Kao Boolean'popunite varijableintA = 5intB = 10'provjerite je li to istinaAko je intA = 5 Xor intB = 5 TadablnResult = IstinaDrugoblnResult = NetačnoZavrši akoMsgBox blnResultKraj podm |
U gornjem primjeru, budući da je JEDAN od uvjeta TRUE, okvir za poruku će se vratiti PRAVI.
1234567891011121314151617 | Pod blnExample ()'deklarirajte cijele brojeveDim intA kao cijeli brojDim intB kao cijeli broj'deklarirati booleanu varijabluDim blnResult Kao Boolean'popunite varijableintA = 5intB = 5'provjerite je li to istinaAko je intA = 5 Xor intB = 5 TadablnResult = IstinaDrugoblnResult = NetačnoZavrši akoMsgBox blnResultKraj podm |
Međutim, u gornjem primjeru, budući da su OBA uvjeta istinita, okvir s porukom će se vratiti LAŽNO.
1234567891011121314151617 | Pod blnExample ()'deklarirajte cijele brojeveDim intA kao cijeli brojDim intB kao cijeli broj'deklarirati booleanu varijabluDim blnResult Kao Boolean'popunite varijableintA = 6intB = 8'provjerite je li to istinaAko je intA = 5 Xor intB = 5 TadablnResult = IstinaDrugoblnResult = NetačnoZavrši akoMsgBox blnResultKraj podm |
i na kraju, budući da su oba uvjeta FALSE, okvir za poruku će također vratiti FALSE.