VBA Boolean тип данни (Dim Variable)

Булов тип променлива

Булевият тип данни 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.

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave