Tip variabil boolean
Tipul de date boolean VBA este utilizat pentru a stoca valori adevărate sau false. Adevărul poate fi reprezentat și de 1 și Fals cu 0.
Pentru a declara o variabilă booleană, utilizați declarația Dim (prescurtare pentru Dimension):
1 | Dim blnA ca Boolean |
Apoi, pentru a atribui o valoare unei variabile, pur și simplu utilizați semnul egal:
1 | blnA = Adevărat |
Când puneți acest lucru într-o procedură, ar putea arăta astfel:
123456789101112 | Sub blnExample ()'declara variabila booleanăDim blnA ca Boolean'rulează codul pentru a completa variabila - de obicei codul este o instrucțiune if sau caseDacă Range ("A1")> 0 atunciblnA = adevăratAltfelblnA = FalsEnd If'arată caseta de mesajeMsgBox "Testul pentru a vedea dacă celula are o valoare mai mare de 0 este" & blnASfârșitul Sub |
Dacă rulați codul de mai sus, va fi afișată următoarea casetă de mesaj.
Declarați variabila booleană la nivel de modul sau global
În exemplul anterior, am declarat Boolean variabilă în cadrul unei proceduri. Variabilele declarate cu o procedură pot fi utilizate numai în cadrul acestei proceduri.
În schimb, puteți declara variabile booleene la nivel de modul sau global.
Nivelul modulului
Declarați Nivelul modulului variabile în partea de sus a modulelor de cod cu Dim afirmație.
Aceste variabile pot fi utilizate cu orice procedură din acel modul de cod.
Nivel global
Declarați și voi La nivel global variabile în partea de sus a modulelor de cod. Cu toate acestea, în loc să utilizați fișierul Dim declarație, ați folosi Public declarație pentru a indica faptul că Boolean variabila este disponibilă pentru a fi utilizată în întregul proiect VBA.
1 | Public blnA ca Boolean |
Dacă ar fi să declarați Boolean variabilă la nivel de modul și apoi încercați să-l utilizați într-un alt modul, veți primi o eroare.
Cu toate acestea, dacă ați fi folosit cuvântul cheie public pentru a declara Boolean variabilă, eroarea nu va apărea și procedura va rula perfect.
Folosind o variabilă booleană
Utilizați variabila booleană în comparație logică. Acestea sunt adesea folosite cu instrucțiunile If pentru a testa dacă o condiție este adevărată sau falsă conform exemplului de mai sus sau într-o linie de cod pentru a aplica un test logic - poate pentru a vedea dacă o valoare este mai mare decât alta.
12345678 | Sub blnExample ()'declara variabila booleanăDim blnA Ca boolean'test pentru a vedea dacă un număr este mai mare decât numărul următorblnA = 45> 68'arată caseta de mesajeMsgBox blnASfârșitul Sub |
Dacă rulați codul de mai sus, veți primi următoarea casetă de mesaj.
pentru că desigur 45 nu este mai mare decât 68!
Utilizarea operatorilor booleni
Deoarece variabilele booleene sunt utilizate în comparația logică, putem folosi operatorii logici AND și OR pentru a testa dacă mai multe condiții sunt adevărate sau false.
Folosind operatorul AND
Putem folosi funcția ȘI pentru a vedea dacă ambele condiții sunt îndeplinite.
12345678 | Sub blnExample ()'declara variabila booleanăDim blnA Ca boolean'folosiți operatorul AND pentru a testa dacă ambele condiții sunt adevărateblnA = 10> 13 Și 15> 12'arată caseta de mesajeMsgBox blnASfârșitul Sub |
sau am putea rula același test folosind o declarație If:
123456789101112 | Sub blnExample ()'declara variabila booleanăDim blnA Ca boolean'folosiți operatorul AND pentru a testa dacă ambele condiții sunt adevărateDacă 10> 13 și 15> 12 AtunciblnA = AdevăratAltfelblnA = FalsEnd If'arată caseta de mesajeMsgBox blnASfârșitul Sub |
Ambele exemple de mai sus ar reveni FALS datorită faptului că 10 este NU mai mare de 13 - și AMBII condițiile trebuie să fie adevărate pentru ca booleanul să fie adevărat.
Folosind operatorul OR
Putem folosi funcția SAU pentru a vedea dacă una dintre condiții este îndeplinită.
12345678 | Sub blnExample ()'declara variabila booleanăDim blnA Ca boolean'folosiți operatorul AND pentru a testa dacă ambele condiții sunt adevărateblnA = 10> 13 Sau 15> 12'arată caseta de mesajeMsgBox blnASfârșitul Sub |
sau am putea rula același test folosind o declarație If:
123456789101112 | Sub blnExample ()'declara variabila booleanăDim blnA Ca boolean'folosiți operatorul AND pentru a testa dacă ambele condiții sunt adevărateDacă 10> 13 SAU 15> 12 AtunciblnA = AdevăratAltfelblnA = FalsEnd If'arată caseta de mesajeMsgBox blnASfârșitul Sub |
Aceste exemple ar reveni ADEVĂRAT datorită faptului că 10 NU este mai mare decât 13 DAR 15 ESTE mai mare decât 12 - șiUNUL SINGUR condiția trebuie să fie adevărată pentru ca booleanul să fie adevărat.
Folosirea instrucțiunilor If ne permite să folosim mai mulți operatori logici
Folosirea operatorului NOT
Putem folosi și operatorul NOT cu variabila booleană. Operatorul NOT neagă valoarea condiției - deci dacă o condiție este adevărată, operatorul NOT va returna falsul.
12345678910111213141516 | Sub FindDifferences ()'declara variabile de intervalDim rng1 ca intervalDim rng2 As Range'activați foaia unuFișe de lucru („Sheet1”). Activați'populează intervaleleSetați rng1 = Range ("A3")Setați rng2 = Range ("B3")'folosiți operatorul NOT pentru a vedea dacă valorile sunt egale sau nu.Dacă nu rng1.Value = rng2.Value AtunciMsgBox "Valorile din celule nu sunt egale"AltfelMsgBox "Valorile din celule sunt egale"End IfSfârșitul Sub |
Utilizarea operatorului logic Xor
TheXor operatorul logic este folosit pentru a compara două sau mai multe condiții. Dacă una dintre condiții este adevărată, va reveni la ADEVĂRAT. Dacă există 2 condiții, și NICI sunt adevărate sau AMBII sunt adevărate, va reveni FALS.
1234567891011121314151617 | Sub blnExample ()'declara numerele întregiDim intA As IntegerDim intB Ca întreg'declara variabila booleanăDim blnResultat ca boolean'populează variabileleintA = 5intB = 10'verificați dacă unul este adevăratDacă intA = 5 Xor intB = 5 AtunciblnResult = AdevăratAltfelblnResult = FalseEnd IfMsgBox blnResultSfârșitul Sub |
În exemplul de mai sus, întrucât UNA dintre condiții este ADEVĂRATĂ, caseta de mesaj va reveni ADEVĂRAT.
1234567891011121314151617 | Sub blnExample ()'declara numerele întregiDim intA As IntegerDim intB Ca întreg'declara variabila booleanăDim blnResultat ca boolean'populează variabileleintA = 5intB = 5'verificați dacă unul este adevăratDacă intA = 5 Xor intB = 5 AtunciblnResult = AdevăratAltfelblnResult = FalseEnd IfMsgBox blnResultSfârșitul Sub |
Cu toate acestea, în exemplul de mai sus, deoarece AMBELE condiții sunt adevărate, caseta de mesaj va reveni FALS.
1234567891011121314151617 | Sub blnExample ()'declara numerele întregiDim intA As IntegerDim intB Ca întreg'declara variabila booleanăDim blnResultat ca boolean'populează variabileleintA = 6intB = 8'verificați dacă unul este adevăratDacă intA = 5 Xor intB = 5 AtunciblnResult = AdevăratAltfelblnResult = FalseEnd IfMsgBox blnResultSfârșitul Sub |
și, în cele din urmă, deoarece ambele condiții sunt FALSE, caseta de mesaj va reveni, de asemenea, FALSE.