Логічні оператори VBA - АБО, І, XOR, НЕ, Є, І ЛЮБО

VBA дозволяє використовувати логічні оператори І, Або, Ні, Xor порівнювати значення. Оператори вважаються "булевими", що означає, що вони в результаті повертають True або False.

Якщо ви хочете дізнатися, як порівнювати рядки, натисніть тут: VBA Порівняти рядки - StrComp

Якщо ви хочете дізнатися, як використовувати оператори порівняння, натисніть тут: Оператори порівняння VBA - не дорівнює & Більше

За допомогою логічного оператора And

The І логічний оператор порівнює дві або більше умов. Якщо всі умови відповідають дійсності, оператор поверне True. Якщо хоча б одна з умов не відповідає дійсності, оператор поверне False. Ось приклад:

123456789101112 Dim intA як ціле числоDim intB як ціле числоDim blnРезультат БулевоintA = 5intB = 5Якщо intA = 5 і intB = 5 ТодіblnResult = ПравдаІнакшеblnResult = НеправдаЗакінчити Якщо

У цьому прикладі ми хочемо перевірити, чи обидва intA та intB дорівнюють 5. Якщо це правда, значення булевого значення blnResult буде істиною, інакше - помилкою.

Спочатку ми встановлюємо значення intA та intB до 5:

12 intA = 5intB = 5

Після цього ми використовуємо І оператор у операторі If, щоб перевірити, чи рівні значення 5:

12345 Якщо intA = 5 і intB = 5 ТодіblnResult = ПравдаІнакшеblnResult = НеправдаЗакінчити Якщо

Оскільки обидві змінні рівні 5, blnResult повертає True:

Зображення 1. Використання логічного оператора And у VBA

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

The Або логічний оператор порівнює дві або більше умов. Якщо хоча б одна з умов відповідає істині, вона поверне Істину. Якщо жодна з умов не відповідає дійсності, оператор поверне False. Ось код для прикладу:

123456789101112 Dim intA як ціле числоDim intB як ціле числоDim blnРезультат БулевоintA = 5intB = 10Якщо intA = 5 або intB = 5 ТодіblnResult = ПравдаІнакшеblnResult = НеправдаЗакінчити Якщо

У цьому прикладі ми хочемо перевірити, чи обидва intA дорівнює 5. або intB дорівнює 10. Якщо будь -яка з цих умов істинна, значення булевого значення blnResult буде істиною, інакше - помилкою.

Спочатку ми встановлюємо значення intA до 5 і intB до 10:

12 intA = 5intB = 10

Після цього ми використовуємо Або оператор у операторі If, щоб перевірити, чи одне із значень дорівнює 5:

12345 Якщо intA = 5 або intB = 5 ТодіblnResult = ПравдаІнакшеblnResult = НеправдаЗакінчити Якщо

Як intA значення 5, blnResult повертає True:

Зображення 2. Використання логічного оператора Or у VBA

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

The Ні логічний оператор перевіряє одну або кілька умов. Якщо умови відповідають дійсності, оператор повертає false. В іншому випадку він повертає True. Ось код для прикладу:

12345678910 Dim intA як ціле числоDim blnРезультат БулевоintA = 5Якщо ні (intA = 6), тоblnResult = ПравдаІнакшеblnResult = НеправдаЗакінчити Якщо

У цьому прикладі ми хочемо перевірити, чи є значення intA не дорівнює 6. Якщо intA відрізняється від 6, значення булевого значення blnResult буде істиною, інакше - помилкою.

Спочатку ми встановлюємо значення intA до 5:

1 intA = 5

Після цього ми використовуємо оператор Not у операторі If, щоб перевірити, чи значення intA відрізняється від 6:

12345 Якщо ні (intA = 6), тоblnResult = ПравдаІнакшеblnResult = НеправдаЗакінчити Якщо

Як intA значення 5, blnResult повертає True:

Зображення 3. Використання оператора Not logic у VBA

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

The Xor логічний оператор порівнює дві або більше умов. Якщо точно одна з умов відповідає істині, вона поверне Істину. Якщо жодна з умов не відповідає дійсності або більше одного не відповідає дійсності, вона повертає false. Ось код для прикладу:

123456789101112 Dim intA як ціле числоDim intB як ціле числоDim blnРезультат БулевоintA = 5intB = 10Якщо intA = 5 Xor intB = 5 ТодіblnResult = ПравдаІнакшеblnResult = НеправдаЗакінчити Якщо

У цьому прикладі ми хочемо перевірити, чи точно одне з значень (intA або IntB) дорівнює 5. Якщо істинна лише одна умова, значення логічного значення blnResult буде істиною, інакше - помилкою.

Спочатку ми встановлюємо значення intA до 5 і intB до 10:

12 intA = 5intB = 10

Після цього ми використовуємо Або оператор у операторі If, щоб перевірити, чи одне із значень дорівнює 5:

12345 Якщо intA = 5 Xor intB = 5 ТодіblnResult = ПравдаІнакшеblnResult = НеправдаЗакінчити Якщо

Як intA значення 5 і intB становить 10, blnResult повертає True:

Зображення 4. Використання логічного оператора Xor у VBA

Є оператором

Оператор Is перевіряє, чи дві змінні об'єкта зберігають один і той же об'єкт.

Розглянемо приклад. Тут ми призначимо два аркуші об’єктам аркуша rng1 та rng2, перевіривши, чи об’єкти двох аркушів зберігають один і той же аркуш:

12345678910111213 Sub CompareObjects ()Dim ws1 як робочий аркуш, ws2 як робочий аркушВстановити ws1 = Аркуші ("Аркуш1")Встановити ws2 = Аркуші ("Аркуш2")Якщо ws1 є ws2 ТодіПовідомлення "Те саме WS"ІнакшеMsgBox "Різні WS"Закінчити ЯкщоEnd Sub

Звичайно, об’єкти аркуша не однакові, тому повертається “Різні WS”.

Як оператор

Оператор Like може порівняти два рядки для неточних збігів. У цьому прикладі буде перевірено, чи починається рядок з "Mr."

1234567891011121314 Sub LikeDemo ()Dim strName As StringDim blnРезультат БулевоstrName = "Містер Майкл Джеймс"Якщо strName як "Mr*" ТодіblnResult = ПравдаІнакшеblnResult = НеправдаЗакінчити ЯкщоEnd Sub

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

wave wave wave wave wave