Логические операторы VBA - OR, AND, XOR, NOT, IS и LIKE

VBA позволяет использовать логические операторы А также, Или, Нет, Xor для сравнения значений. Операторы считаются «логическими», что означает, что в результате они возвращают True или False.

Если вы хотите узнать, как сравнивать строки, щелкните здесь: VBA Compare Strings - StrComp

Если вы хотите узнать, как использовать операторы сравнения, щелкните здесь: Операторы сравнения VBA - не равно и др.

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

В А также Логический оператор сравнивает два или более условий. Если все условия верны, оператор вернет True. Если хотя бы одно из условий не выполняется, оператор вернет False. Вот пример:

123456789101112 Dim intA как целое числоDim intB как целое числоDim blnResult As BooleanintA = 5intB = 5Если intA = 5 и intB = 5 ТогдаblnResult = TrueЕщеblnResult = ЛожьКонец, если

В этом примере мы хотим проверить, что оба intA а также intB равны 5. Если это правда, значение Boolean blnResult будет True, в противном случае - False.

Сначала мы устанавливаем значения intA а также intB к 5:

12 intA = 5intB = 5

После этого воспользуемся А также в операторе If, чтобы проверить, равны ли значения 5:

12345 Если intA = 5 и intB = 5 ТогдаblnResult = TrueЕщеblnResult = ЛожьКонец, если

Поскольку обе переменные равны 5, blnResult возвращает True:

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

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

В Или Логический оператор сравнивает два или более условий. Если хотя бы одно из условий истинно, оно вернет True. Если ни одно из условий не выполняется, оператор вернет False. Вот код для примера:

123456789101112 Dim intA как целое числоDim intB как целое числоDim blnResult As BooleanintA = 5intB = 10Если intA = 5 или intB = 5 ТогдаblnResult = TrueЕщеblnResult = ЛожьКонец, если

В этом примере мы хотим проверить, что оба intA равно 5. или intB равно 10. Если любое из этих условий истинно, значение Boolean blnResult будет True, в противном случае - False.

Сначала мы устанавливаем значение intA до 5 и intB до 10:

12 intA = 5intB = 10

После этого воспользуемся Или в операторе If, чтобы проверить, равно ли какое-либо из значений 5:

12345 Если intA = 5 или intB = 5 ТогдаblnResult = TrueЕщеblnResult = ЛожьКонец, если

В качестве intA значение 5, blnResult возвращает True:

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

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

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

12345678910 Dim intA как целое числоDim blnResult As BooleanintA = 5Если не (intA = 6), тоblnResult = TrueЕщеblnResult = ЛожьКонец, если

В этом примере мы хотим проверить, имеет ли значение intA не равно 6. Если intA отличается от 6, значение Boolean blnResult будет True, в противном случае - False.

Сначала мы устанавливаем значение intA к 5:

1 intA = 5

После этого мы используем оператор Not в операторе If, чтобы проверить, отличается ли значение intA от 6:

12345 Если не (intA = 6), тоblnResult = TrueЕщеblnResult = ЛожьКонец, если

В качестве intA значение 5, blnResult возвращает True:

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

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

В Xor Логический оператор сравнивает два или более условий. Если выполняется ровно одно из условий, возвращается True. Если ни одно из условий не выполняется или выполняется несколько условий, возвращается значение False. Вот код для примера:

123456789101112 Dim intA как целое числоDim intB как целое числоDim blnResult As BooleanintA = 5intB = 10Если intA = 5 Xor intB = 5 ТогдаblnResult = TrueЕщеblnResult = ЛожьКонец, если

В этом примере мы хотим проверить, равно ли ровно одно из значений (intA или IntB) 5. Если истинно только одно условие, значение Boolean blnResult будет True, в противном случае - False.

Сначала мы устанавливаем значение intA до 5 и intB до 10:

12 intA = 5intB = 10

После этого воспользуемся Или в операторе If, чтобы проверить, равно ли какое-либо из значений 5:

12345 Если intA = 5 Xor intB = 5 ТогдаblnResult = TrueЕщеblnResult = ЛожьКонец, если

В качестве intA значение 5 и intB 10, blnResult возвращает True:

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

Оператор

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

Давайте посмотрим на пример. Здесь мы назначим два рабочих листа объектам рабочего листа rng1 и rng2, проверяя, хранят ли два объекта рабочего листа один и тот же рабочий лист:

12345678910111213 Sub CompareObjects ()Dim ws1 как рабочий лист, ws2 как рабочий листУстановить ws1 = Sheets ("Sheet1")Установить ws2 = Sheets ("Sheet2")Если ws1 Is ws2, тоMsgBox "Тот же WS"ЕщеMsgBox «Различные WS»Конец, еслиКонец подписки

Конечно, объекты рабочего листа не совпадают, поэтому возвращается «Различные WS».

Оператор Like

Оператор Like может сравнивать две строки на предмет неточных совпадений. В этом примере проверяется, начинается ли строка с «Мистер».

1234567891011121314 Sub LikeDemo ()Dim strName As StringDim blnResult As BooleanstrName = "Мистер Майкл Джеймс"Если strName Like "Mr *" ТогдаblnResult = TrueЕщеblnResult = ЛожьКонец, еслиКонец подписки

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

wave wave wave wave wave