Būla mainīgā veids
Patiesu vai nepatiesu vērtību glabāšanai tiek izmantots VBA Būla datu tips. Patiesību var attēlot arī ar 1 un nepatiesu ar 0.
Lai deklarētu Būla mainīgo, izmantojiet Dim Statement (saīsinājums no Dimension):
1 | Dim blnA kā Būla |
Pēc tam, lai mainīgajam piešķirtu vērtību, vienkārši izmantojiet vienādības zīmi:
1 | blnA = Taisnība |
Ievietojot to procedūrā, tas varētu izskatīties šādi:
123456789101112 | Sub blnPiemērs ()'deklarējiet Būla mainīgoDim blnA kā Būla'palaist kodu, lai aizpildītu mainīgo - parasti kods ir if vai case paziņojumsJa diapazons ("A1")> 0, tadblnA = taisnībaCitādiblnA = nepatiesaBeigas Ja'parādīt ziņojumu lodziņuMsgBox "Tests, lai noskaidrotu, vai šūnas vērtība ir lielāka par 0" & blnABeigu apakš |
Ja palaižat iepriekš minēto kodu, tiks parādīts šāds ziņojumu lodziņš.
Deklarēt Būla mainīgo moduļa vai globālā līmenī
Iepriekšējā piemērā mēs esam deklarējuši Būla mainīgs procedūras ietvaros. Ar procedūru deklarētos mainīgos var izmantot tikai šīs procedūras ietvaros.
Tā vietā jūs varat deklarēt Būla mainīgos moduļa vai globālā līmenī.
Moduļa līmenis
Jūs paziņojat Moduļa līmenis mainīgie koda moduļu augšpusē ar Izmērs paziņojums, apgalvojums.
Šos mainīgos var izmantot jebkurā koda moduļa procedūrā.
Globālais līmenis
Jūs arī deklarējat Globālais līmenis mainīgie koda moduļu augšpusē. Tomēr tā vietā, lai izmantotu Izmērs paziņojumu, jūs izmantotu Publisks paziņojums, kas norāda, ka Būla mainīgo var izmantot visā VBA projektā.
1 | Publiskais blnA kā Būla |
Ja jūs deklarētu Būla mainīgo moduļa līmenī un pēc tam mēģiniet to izmantot citā modulī, jūs saņemsit kļūdu.
Tomēr, ja jūs būtu izmantojis publisko atslēgvārdu, lai deklarētu Būla mainīgais, kļūda nenotiktu un procedūra darbotos nevainojami.
Būla mainīgā izmantošana
Loģiskajā salīdzinājumā jūs izmantojat Būla mainīgo. Tos bieži izmanto kopā ar If paziņojumiem, lai pārbaudītu, vai nosacījums ir patiess vai nepatiess, kā norādīts iepriekš minētajā piemērā, vai koda rindā, lai lietotu loģisku pārbaudi - iespējams, lai noskaidrotu, vai viena vērtība ir lielāka par citu.
12345678 | Sub blnPiemērs ()'deklarējiet Būla mainīgoDim blnA Kā Būla"pārbaudiet, vai viens skaitlis ir lielāks par nākamoblnA = 45> 68'parādīt ziņojumu lodziņuMsgBox blnABeigu apakš |
Ja palaižat iepriekš minēto kodu, jūs saņemsit šādu ziņojumu lodziņu.
jo protams 45 nav lielāks par 68!
Būla operatoru izmantošana
Tā kā Būla mainīgie tiek izmantoti loģiskā salīdzinājumā, mēs varam izmantot loģiskos operatorus AND un OR, lai pārbaudītu, vai vairāki nosacījumi ir patiesi vai nepatiesi.
Operatora AND izmantošana
Mēs varam izmantot funkciju AND, lai pārbaudītu, vai ir izpildīti abi nosacījumi.
12345678 | Sub blnPiemērs ()'deklarējiet Būla mainīgoDim blnA Kā Būla“izmantojiet operatoru AND, lai pārbaudītu, vai abi nosacījumi ir patiesiblnA = 10> 13 Un 15> 12'parādīt ziņojumu lodziņuMsgBox blnABeigu apakš |
vai arī mēs varētu veikt to pašu testu, izmantojot paziņojumu Ja:
123456789101112 | Sub blnPiemērs ()'deklarējiet Būla mainīgoDim blnA Kā Būla“izmantojiet operatoru AND, lai pārbaudītu, vai abi nosacījumi ir patiesiJa 10> 13 Un 15> 12 TadblnA = TaisnībaCitādiblnA = nepatiesaBeigas Ja'parādīt ziņojumu lodziņuMsgBox blnABeigu apakš |
Abi iepriekš minētie piemēri atgriezīsies FALSE sakarā ar to, ka 10 ir NĒ lielāks par 13 - un Abos nosacījumiem ir jābūt patiesiem, lai Būla būtu patiesa.
Izmantojot operatoru OR
Mēs varam izmantot funkciju VAI, lai pārbaudītu, vai ir izpildīts VIENS no nosacījumiem.
12345678 | Sub blnPiemērs ()'deklarējiet Būla mainīgoDim blnA Kā Būla“izmantojiet operatoru AND, lai pārbaudītu, vai abi nosacījumi ir patiesiblnA = 10> 13 vai 15> 12'parādīt ziņojumu lodziņuMsgBox blnABeigu apakš |
vai arī mēs varētu veikt to pašu testu, izmantojot paziņojumu Ja:
123456789101112 | Sub blnPiemērs ()'deklarējiet Būla mainīgoDim blnA Kā Būla“izmantojiet operatoru AND, lai pārbaudītu, vai abi nosacījumi ir patiesiJa 10> 13 VAI 15> 12 TadblnA = TaisnībaCitādiblnA = nepatiesaBeigas Ja'parādīt ziņojumu lodziņuMsgBox blnABeigu apakš |
Šie piemēri atgrieztos PATIESA sakarā ar to, ka 10 NAV lielāks par 13, BET 15 IR lielāks par 12 - unTIKAI VIENS nosacījumam ir jābūt patiesam, lai Būla būtu patiesa.
If paziņojumu izmantošana ļauj izmantot loģiskākus operatorus
Izmantojot operatoru NOT
Mēs varam arī izmantot operatoru NOT ar Būla mainīgo. Operators NOT noliedz nosacījuma vērtību - tādēļ, ja nosacījums ir patiess, operators NOT atgriež nepatiesu vērtību.
12345678910111213141516 | Sub FindDifferences ()'deklarēt diapazona mainīgosDim rng1 kā diapazonsDim rng2 kā diapazons'aktivizējiet pirmo lapuDarblapas ("Sheet1"). Aktivizēt'aizpildiet diapazonusIestatīt rng1 = Diapazons ("A3")Iestatīt rng2 = Diapazons ("B3")"Izmantojiet operatoru NOT, lai redzētu, vai vērtības ir vienādas vai nē.Ja nē rng1.Value = rng2.Value TadMsgBox "Šūnu vērtības nav vienādas"CitādiMsgBox "Vērtības šūnās ir vienādas"Beigas JaBeigu apakš |
Izmantojot Xor loģisko operatoru
TheXor loģiskais operators tiek izmantots, lai salīdzinātu divus vai vairākus nosacījumus. Ja viens no nosacījumiem ir patiess, tas atgriezīs ĪSTU. Ja ir 2 nosacījumi un NEVIENS nav patiess vai Abi ir patiesi, tas atgriezīs FALSE.
1234567891011121314151617 | Sub blnPiemērs ()'deklarē veselus skaitļusDim intA Kā vesels skaitlisDim intB Kā vesels skaitlis'deklarējiet Būla mainīgoDim blnResult Kā Būla'aizpildiet mainīgosintA = 5intB = 10'pārbaudiet, vai kāda no tām ir patiesaJa intA = 5 X vai intB = 5 TadblnResult = PatiessCitādiblnResult = NepareiziBeigas JaMsgBox blnResultBeigu apakš |
Iepriekš minētajā piemērā, tā kā VIENS no nosacījumiem ir PATIESS, ziņojuma lodziņš atgriezīsies PATIESA.
1234567891011121314151617 | Sub blnPiemērs ()'deklarē veselus skaitļusDim intA Kā vesels skaitlisDim intB Kā vesels skaitlis'deklarējiet Būla mainīgoDim blnResult Kā Būla'aizpildiet mainīgosintA = 5intB = 5'pārbaudiet, vai kāda no tām ir patiesaJa intA = 5 X vai intB = 5 TadblnResult = PatiessCitādiblnResult = NepareiziBeigas JaMsgBox blnResultBeigu apakš |
Tomēr iepriekš minētajā piemērā, tā kā abi nosacījumi ir patiesi, ziņojumu lodziņš atgriezīsies FALSE.
1234567891011121314151617 | Sub blnPiemērs ()'deklarē veselus skaitļusDim intA Kā vesels skaitlisDim intB Kā vesels skaitlis'deklarējiet Būla mainīgoDim blnResult Kā Būla'aizpildiet mainīgosintA = 6intB = 8'pārbaudiet, vai kāda no tām ir patiesaJa intA = 5 X vai intB = 5 TadblnResult = PatiessCitādiblnResult = NepareiziBeigas JaMsgBox blnResultBeigu apakš |
un visbeidzot, tā kā abi nosacījumi ir FALSE, ziņojumu lodziņš arī atgriezīs FALSE.