Булов тип променлива
Булевият тип данни VBA се използва за съхраняване на True или False стойности. True може също да бъде представено с 1 и False с 0.
За да декларирате булева променлива, използвате оператора Dim (съкращение от Dimension):
1 | Dim blnA като булев |
След това, за да присвоите стойност на променлива, просто използвате знака за равенство:
1 | blnA = Вярно |
Когато поставите това в процедура, това може да изглежда така:
123456789101112 | Sub blnExample ()'декларирайте булева променливаDim blnA като булев'стартирайте код, за да попълните променливата - обикновено кодът е оператор if или caseАко Range ("A1")> 0 тогаваblnA = вярноИначеblnA = невярноКрай Ако'покажете полето за съобщенияMsgBox "Тестът за проверка дали клетката има стойност по -голяма от 0 е" & blnAEnd Sub |
Ако изпълните горния код, ще се покаже следното поле със съобщение.
Обявете булева променлива на модулно или глобално ниво
В предишния пример декларирахме Булев променлива в рамките на процедура. Променливите, декларирани с процедура, могат да се използват само в рамките на тази процедура.
Вместо това можете да декларирате булеви променливи на модулно или глобално ниво.
Модулно ниво
Декларирате Ниво на модул променливи в горната част на кодовите модули с Дим изявление.
Тези променливи могат да се използват с всяка процедура в този кодов модул.
Глобално ниво
Вие също декларирате Глобално ниво променливи в горната част на кодовите модули. Въпреки това, вместо да използвате Дим изявление, бихте използвали Обществен изявление, което показва, че Булев променливата е достъпна за използване във вашия VBA проект.
1 | Публична blnA като булева |
Ако трябва да декларирате Булев променлива на ниво модул и след това опитайте да я използвате в различен модул, ще получите грешка.
Ако обаче сте използвали ключовата дума Public, за да декларирате Булев променлива, грешката няма да възникне и процедурата ще работи перфектно.
Използване на булева променлива
Използвате булева променлива в логическо сравнение. Те често се използват с оператори If, за да се провери дали дадено условие е True или False съгласно горния пример, или в ред код, за да се приложи логически тест - може би, за да се види дали една стойност е по -голяма от друга.
12345678 | Sub blnExample ()'декларирайте булева променливаDim blnA Като булев'тествайте дали едно число е по -голямо от следващотоblnA = 45> 68'покажете полето за съобщенияMsgBox blnAEnd Sub |
Ако стартирате кода по -горе, ще получите следното поле за съобщение.
защото разбира се 45 не е по -голямо от 68!
Използване на булеви оператори
Тъй като булевите променливи се използват при логическо сравнение, можем да използваме логическите оператори И и ИЛИ, за да проверим дали повече от едно условие е вярно или невярно.
Използване на оператора AND
Можем да използваме функцията AND, за да видим дали са изпълнени и двете условия.
12345678 | Sub blnExample ()'декларирайте булева променливаDim blnA Като булев'използвайте оператора AND, за да проверите дали и двете условия са изпълнениblnA = 10> 13 и 15> 12'покажете полето за съобщенияMsgBox blnAEnd Sub |
или можем да проведем същия тест, използвайки оператор If:
123456789101112 | Sub blnExample ()'декларирайте булева променливаDim blnA Като булев'използвайте оператора AND, за да проверите дали и двете условия са изпълнениАко 10> 13 и 15> 12 ТогаваblnA = ВярноИначеblnA = невярноКрай Ако'покажете полето за съобщенияMsgBox blnAEnd Sub |
И двата примера по -горе ще се върнат НЕВЯРНО поради факта, че 10 е НЕ по -голямо от 13 - и И ДВЕТЕ условията трябва да са истина, за да е вярно булевото.
Използване на оператора OR
Можем да използваме функцията ИЛИ, за да видим дали ЕДНО от условията е изпълнено.
12345678 | Sub blnExample ()'декларирайте булева променливаDim blnA Като булев'използвайте оператора AND, за да проверите дали и двете условия са изпълнениblnA = 10> 13 или 15> 12'покажете полето за съобщенияMsgBox blnAEnd Sub |
или можем да проведем същия тест, използвайки оператор If:
123456789101112 | Sub blnExample ()'декларирайте булева променливаDim blnA Като булев'използвайте оператора AND, за да проверите дали и двете условия са изпълнениАко 10> 13 ИЛИ 15> 12 ТогаваblnA = ВярноИначеblnA = невярноКрай Ако'покажете полето за съобщенияMsgBox blnAEnd Sub |
Тези примери ще се върнат ВЯРНО поради факта, че 10 НЕ е по -голямо от 13 НО 15 Е по -голямо от 12 - иСАМО ЕДИН условието трябва да е вярно, за да е вярно булевото.
Използването на оператори If ни позволява да използваме повече логически оператори
Използване на оператора NOT
Можем да използваме и оператора NOT с булева променлива. Операторът NOT отрича стойността на условието - така че ако условие е вярно, операторът NOT ще върне false.
12345678910111213141516 | Sub FindDifferences ()'декларират променливи на диапазонаDim rng1 As RangeDim rng2 As Range'активиране на първия листРаботни листове („Лист1“). Активирайте'попълнете диапазонитеЗадайте rng1 = Обхват ("A3")Задайте rng2 = Обхват ("B3")„използвайте оператора NOT, за да видите дали стойностите са равни или не.Ако не е rng1.Value = rng2.Value ТогаваMsgBox "Стойностите в клетките не са равни"ИначеMsgBox "Стойностите в клетките са равни"Край АкоEnd Sub |
Използване на логическия оператор Xor
TheXor логическият оператор се използва за сравняване на две или повече условия. Ако едно от условията е вярно, то ще върне TRUE. Ако има 2 условия и НИТО НЕ са верни или И двете са верни, то ще върне FALSE.
1234567891011121314151617 | Sub blnExample ()'декларирайте целите числаDim intA като цяло числоDim intB като цяло число'декларирайте булева променливаDim bln Резултат Като булев'попълнете променливитеintA = 5intB = 10'проверете дали е вярноАко intA = 5 Xor intB = 5 ТогаваblnResult = ВярноИначеblnResult = FalseКрай АкоMsgBox blnResultEnd Sub |
В горния пример, тъй като ЕДНО от условията е TRUE, полето за съобщение ще се върне ВЯРНО.
1234567891011121314151617 | Sub blnExample ()'декларирайте целите числаDim intA като цяло числоDim intB като цяло число'декларирайте булева променливаDim bln Резултат Като булев'попълнете променливитеintA = 5intB = 5'проверете дали е вярноАко intA = 5 Xor intB = 5 ТогаваblnResult = ВярноИначеblnResult = FalseКрай АкоMsgBox blnResultEnd Sub |
В горния пример, тъй като и двете условия са верни, полето за съобщение ще се върне НЕВЯРНО.
1234567891011121314151617 | Sub blnExample ()'декларирайте целите числаDim intA като цяло числоDim intB като цяло число'декларирайте булева променливаDim bln Резултат Като булев'попълнете променливитеintA = 6intB = 8'проверете дали е вярноАко intA = 5 Xor intB = 5 ТогаваblnResult = ВярноИначеblnResult = FalseКрай АкоMsgBox blnResultEnd Sub |
и накрая, тъй като и двете условия са FALSE, полето за съобщение също ще върне FALSE.