Логічний тип даних VBA (змінна затемнення)

Логічний тип змінної

Логічний тип даних VBA використовується для зберігання значень True або False. Істина також може бути представлена ​​1, а помилка - 0.

Для оголошення булевої змінної використовуйте оператор Dim (скорочення від Dimension):

1 Розмити blnA як булеве

Потім, щоб призначити змінній значення, ви просто використовуєте знак рівності:

1 blnA = Правда

Якщо ви помістите це в процедуру, це може виглядати так:

123456789101112 Sub blnExample ()'оголосити булеву зміннуРозмити blnA як булеве'запустіть код для заповнення змінної - зазвичай це код оператора if або caseЯкщо Діапазон ("A1")> 0, тоblnA = істинаІнакшеblnA = НеправдаЗакінчити Якщо'показати вікно повідомленьMsgBox "Тест, щоб перевірити, чи має значення комірка більше 0", & blnAEnd Sub

Якщо ви запустите код вище, відобразиться таке вікно повідомлення.

Оголошення булевої змінної на модульному або глобальному рівні

У попередньому прикладі ми оголосили Булеве змінна в процедурі. Змінні, оголошені процедурою, можна використовувати лише в рамках цієї процедури.

Замість цього ви можете оголосити булеві змінні на модульному або глобальному рівні.

Рівень модуля

Ви заявляєте Рівень модуля змінні у верхній частині модулів коду з Dim заяву.

Ці змінні можна використовувати з будь -якою процедурою в цьому модулі коду.

Глобальний рівень

Ви також декларуєте Глобальний рівень змінні у верхній частині модулів коду. Однак замість використання Dim , ви б використовували Громадські заяву про те, що Булеве Змінна доступна для використання у вашому проекті VBA.

1 Публічна blnA як булева

Якби ви оголосили Булеве змінної на рівні модуля, а потім спробуйте використати її в іншому модулі, ви отримаєте помилку.

Однак, якщо б ви використовували ключове слово Public для оголошення Булеве змінної, помилка не відбудеться, і процедура працюватиме ідеально.

Використання булевої змінної

Ви використовуєте булеву змінну для логічного порівняння. Вони часто використовуються з операторами If для перевірки того, чи є умова True або False згідно з наведеним вище прикладом, або у рядку коду для застосування логічного тесту - можливо, щоб побачити, чи одне значення більше іншого.

12345678 Sub blnExample ()'оголосити булеву зміннуDim blnA Як булеве'перевірити, чи одне число більше наступногоblnA = 45> 68'показати вікно повідомленьMsgBox blnAEnd Sub

Якщо ви запустите код вище, ви отримаєте таке вікно повідомлення.

тому що, звичайно, 45 не більше 68!

Використання логічних операторів

Оскільки в логічному порівнянні використовуються булеві змінні, ми можемо використовувати логічні оператори AND та OR для перевірки, чи є істиною чи хибністю кілька умов.

За допомогою оператора 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 логічний оператор використовується для порівняння двох або більше умов. Якщо одна з умов відповідає дійсності, вона поверне ІСТИНУ. Якщо є 2 умови, а НІТЬМО не відповідає дійсності або ОБІ є істинними, воно поверне НЕВІРНО.

1234567891011121314151617 Sub blnExample ()'оголосити цілі числаDim intA як ціле числоDim intB як ціле число'оголосити булеву зміннуDim blnРезультат Булево'заповніть змінніintA = 5intB = 10'Перевірте, чи правдаЯкщо intA = 5 Xor intB = 5 ТодіblnResult = ПравдаІнакшеblnResult = НеправдаЗакінчити ЯкщоMsgBox blnResultEnd Sub

У наведеному вище прикладі, оскільки ОДНА з умов - ІСТИНА, вікно повідомлення повернеться ПРАВДА.

1234567891011121314151617 Sub blnExample ()'оголосити цілі числаDim intA як ціле числоDim intB як ціле число'оголосити булеву зміннуDim bln Результат Як логічний'заповнити змінніintA = 5intB = 5'Перевірте, чи правдаЯкщо intA = 5 Xor intB = 5 ТодіblnResult = ПравдаІнакшеblnResult = НеправдаЗакінчити ЯкщоMsgBox blnResultEnd Sub

Однак у наведеному вище прикладі, оскільки обидві умови відповідають дійсності, вікно повідомлення повернеться ПОМИЛКОВИЙ.

1234567891011121314151617 Sub blnExample ()'оголосити цілі числаDim intA як ціле числоDim intB як ціле число'оголосити булеву зміннуDim blnРезультат Булево'заповнити змінніintA = 6intB = 8'Перевірте, чи правдаЯкщо intA = 5 Xor intB = 5 ТодіblnResult = ПравдаІнакшеblnResult = НеправдаЗакінчити ЯкщоMsgBox blnResultEnd Sub

і нарешті, оскільки обидві умови НЕВІРНІ, вікно повідомлення також поверне НЕВІРНО.

Ви допоможете розвитку сайту, поділившись сторінкою з друзями

wave wave wave wave wave