Логически оператори на VBA - ИЛИ, И, XOR, НЕ, ИС, И КАТО

VBA ви позволява да използвате логическите оператори И, Или, Не, Xor за сравняване на стойностите. Операторите се считат за „булеви“, което означава, че в резултат връщат True или False.

Ако искате да научите как да сравнявате низове, щракнете тук: VBA Сравняване на низове - StrComp

Ако искате да научите как да използвате оператори за сравнение, щракнете тук: VBA Comparison Operators - Not Equal to & More

Използване на And Logical Operator

The И логическият оператор сравнява две или повече условия. Ако всички условия са верни, операторът ще върне True. Ако поне едно от условията не е вярно, операторът ще върне False. Ето един пример:

123456789101112 Dim intA като цяло числоDim intB като цяло числоDim bln Резултат Като булевintA = 5intB = 5Ако intA = 5 и intB = 5 ТогаваblnResult = ВярноИначеblnResult = FalseКрай Ако

В този пример искаме да проверим дали и двете intA и intB са равни на 5. Ако това е вярно, стойността на Boolean blnResult ще бъде вярно, в противен случай ще бъде невярно.

Първо, задаваме стойности на intA и intB до 5:

12 intA = 5intB = 5

След това използваме И оператор в оператора If, за да провери дали стойностите са равни на 5:

12345 Ако intA = 5 и intB = 5 ТогаваblnResult = ВярноИначеblnResult = FalseКрай Ако

Тъй като и двете променливи са равни на 5, blnResult връща True:

Изображение 1. Използване на логическия оператор And във VBA

Използване на логическия оператор

The Или логическият оператор сравнява две или повече условия. Ако поне едно от условията е вярно, то ще върне True. Ако нито едно от условията не е вярно, операторът ще върне False. Ето кода за примера:

123456789101112 Dim intA като цяло числоDim intB като цяло числоDim bln Резултат Като булевintA = 5intB = 10Ако intA = 5 или intB = 5 ТогаваblnResult = ВярноИначеblnResult = FalseКрай Ако

В този пример искаме да проверим дали и двете intA е равно на 5. или intB е равно на 10. Ако някое от тези условия е вярно, стойността на булева blnResult ще бъде вярно, в противен случай ще бъде невярно.

Първо, задаваме стойността на intA до 5 и intB до 10:

12 intA = 5intB = 10

След това използваме Или оператор в оператора If, за да провери дали някоя от стойностите е равна на 5:

12345 Ако intA = 5 или intB = 5 ТогаваblnResult = ВярноИначеblnResult = FalseКрай Ако

Като intA стойността е 5, blnResult връща True:

Изображение 2. Използване на логическия оператор Or във VBA

Използване на нелогичен оператор

The Не логическият оператор проверява едно или повече условия. Ако условията са верни, операторът връща False. В противен случай връща True. Ето кода за примера:

12345678910 Dim intA като цяло числоDim bln Резултат Като булевintA = 5Ако не (intA = 6), тогаваblnResult = ВярноИначеblnResult = FalseКрай Ако

В този пример искаме да проверим дали стойността на intA не е равно на 6. Ако intA е различна от 6, стойността на булева blnResult ще бъде вярно, в противен случай ще бъде невярно.

Първо, задаваме стойността на intA до 5:

1 intA = 5

След това използваме оператора Not в израза If, за да проверим дали стойността на intA е различна от 6:

12345 Ако не (intA = 6), тогаваblnResult = ВярноИначеblnResult = FalseКрай Ако

Като intA стойността е 5, blnResult връща True:

Изображение 3. Използване на оператора Not logic във VBA

Използване на логическия оператор Xor

The Xor логическият оператор сравнява две или повече условия. Ако точно едно от условията е вярно, то ще върне True. Ако нито едно от условията не е вярно или повече от едно е вярно, то ще върне False. Ето кода за примера:

123456789101112 Dim intA като цяло числоDim intB като цяло числоDim bln Резултат Като булевintA = 5intB = 10Ако intA = 5 Xor intB = 5 ТогаваblnResult = ВярноИначеblnResult = FalseКрай Ако

В този пример искаме да проверим дали точно една от стойностите (intA или IntB) е равна на 5. Ако само едно условие е вярно, стойността на Boolean blnResult ще бъде вярно, в противен случай ще бъде невярно.

Първо, задаваме стойността на intA до 5 и intB до 10:

12 intA = 5intB = 10

След това използваме Или оператор в оператора If, за да провери дали някоя от стойностите е равна на 5:

12345 Ако intA = 5 Xor intB = 5 ТогаваblnResult = ВярноИначеblnResult = FalseКрай Ако

Като intA стойността е 5 и intB е 10, blnResult връща True:

Изображение 4. Използване на логическия оператор Xor във VBA

Оператор ли е

Операторът Is Is тества дали две променливи на обекта съхраняват един и същ обект.

Нека разгледаме един пример. Тук ще присвоим два работни листа на обекти на работен лист rng1 и rng2, като тестваме дали двата обекта на работен лист съхраняват един и същ работен лист:

12345678910111213 Sub CompareObjects ()Dim ws1 като работен лист, ws2 като работен листЗадайте ws1 = Листове ("Sheet1")Задайте ws2 = Листове ("Sheet2")Ако ws1 е ws2, тогаваMsgBox „Същият WS“ИначеMsgBox "Различни WSs"Край АкоEnd Sub

Разбира се обектите на работния лист не са еднакви, така че се връща „Различни WS“.

Като оператора

Операторът на Like може да сравнява два низа за неточни съвпадения. Този пример ще тества дали низ започва с „Mr.“

1234567891011121314 Sub LikeDemo ()Dim strName As StringDim bln Резултат Като булевstrName = "Мистър Майкъл Джеймс"Ако strName като "Mr*" ТогаваblnResult = ВярноИначеblnResult = FalseКрай АкоEnd Sub

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

wave wave wave wave wave