Тип логической переменной
Тип данных VBA Boolean используется для хранения значений True или False. Истина также может быть представлена 1, а Ложь - 0.
Чтобы объявить логическую переменную, вы используете оператор Dim (сокращение от Dimension):
1 | Dim blnA как логическое |
Затем, чтобы присвоить значение переменной, вы просто используете знак равенства:
1 | blnA = Верно |
Когда вы поместите это в процедуру, это может выглядеть так:
123456789101112 | Sub blnExample ()'объявить логическую переменнуюDim blnA как логическое'запустить код для заполнения переменной - обычно это оператор if или caseЕсли Range ("A1")> 0, тогдаblnA = верноЕщеblnA = ЛожьКонец, если'показать окно сообщенияMsgBox "Проверка того, имеет ли ячейка значение больше 0," & blnAКонец подписки |
Если вы запустите приведенный выше код, появится следующее окно сообщения.
Объявить логическую переменную на модульном или глобальном уровне
В предыдущем примере мы объявили Логический переменная внутри процедуры. Переменные, объявленные с помощью процедуры, могут использоваться только внутри этой процедуры.
Вместо этого вы можете объявить логические переменные на модульном или глобальном уровне.
Уровень модуля
Вы заявляете Уровень модуля переменные в верхней части модулей кода с Тусклый утверждение.
Эти переменные можно использовать с любой процедурой в этом модуле кода.
Глобальный уровень
Вы также заявляете Глобальный уровень переменные в верхней части модулей кода. Однако вместо использования Тусклый заявление, вы должны использовать Общественные заявление, чтобы указать, что Логический переменная доступна для использования в вашем проекте VBA.
1 | Public blnA как логическое |
Если бы вы объявили Логический переменная на уровне модуля, а затем попытайтесь использовать ее в другом модуле, вы получите сообщение об ошибке.
Однако, если вы использовали ключевое слово Public для объявления Логический переменной, ошибка не возникнет, и процедура будет работать безупречно.
Использование логической переменной
Вы используете логическую переменную в логическом сравнении. Они часто используются с операторами If для проверки того, является ли условие истинным или ложным, как в приведенном выше примере, или в строке кода для применения логической проверки - возможно, чтобы увидеть, больше ли одно значение, чем другое.
12345678 | Sub blnExample ()'объявить логическую переменнуюDim blnA как логическое'проверить, больше ли одно число, чем следующее числомлрд = 45> 68'показать окно сообщенияMsgBox млрдКонец подписки |
Если вы запустите приведенный выше код, вы получите следующее окно сообщения.
ведь 45 конечно не больше 68!
Использование логических операторов
Поскольку логические переменные используются в логическом сравнении, мы можем использовать логические операторы И и ИЛИ, чтобы проверить, является ли более одного условия истинным или ложным.
Использование оператора И
Мы можем использовать функцию И, чтобы увидеть, выполняются ли ОБЕИХ условий.
12345678 | Sub blnExample ()'объявить логическую переменнуюDim blnA как логическое'используйте оператор AND, чтобы проверить, верны ли оба условияblnA = 10> 13 и 15> 12'показать окно сообщенияMsgBox млрдКонец подписки |
или мы могли бы запустить тот же тест, используя оператор If:
123456789101112 | Sub blnExample ()'объявить логическую переменнуюDim blnA как логическое'используйте оператор AND, чтобы проверить, верны ли оба условияЕсли 10> 13 и 15> 12, тоblnA = верноЕщеblnA = ЛожьКонец, если'показать окно сообщенияMsgBox млрдКонец подписки |
Оба приведенных выше примера вернут ЛОЖНЫЙ из-за того, что 10 - это НЕТ больше 13 - и ОБА Для того чтобы логическое значение было истинным, условия должны быть истинными.
Использование оператора ИЛИ
Мы можем использовать функцию ИЛИ, чтобы увидеть, выполняется ли ОДНО ИЗ условий.
12345678 | Sub blnExample ()'объявить логическую переменнуюDim blnA как логическое'используйте оператор AND, чтобы проверить, верны ли оба условияblnA = 10> 13 или 15> 12'показать окно сообщенияMsgBox млрдКонец подписки |
или мы могли бы запустить тот же тест, используя оператор If:
123456789101112 | Sub blnExample ()'объявить логическую переменнуюDim blnA как логическое'используйте оператор AND, чтобы проверить, верны ли оба условияЕсли 10> 13 ИЛИ 15> 12 ТогдаblnA = верноЕщеblnA = ЛожьКонец, если'показать окно сообщенияMsgBox млрдКонец подписки |
Эти примеры вернутся ПРАВДА из-за того, что 10 НЕ больше 13, НО 15 больше 12 - иТОЛЬКО ОДИН Условие должно быть истинным, чтобы логическое значение было истинным.
Использование операторов If позволяет нам использовать больше логических операторов
Использование оператора НЕ
Мы также можем использовать оператор 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 "Значения в ячейках равны"Конец, еслиКонец подписки |
Использование логического оператора Xor
ВXor логический оператор используется для сравнения двух или более условий. Если одно из условий верно, оно вернет ИСТИНА. Если есть 2 условия, НИ НИ ОДИН или ОБА истинны, будет возвращено ЛОЖЬ.
1234567891011121314151617 | Sub blnExample ()'объявляем целые числаDim intA как целое числоDim intB как целое число'объявить логическую переменнуюDim blnResult As Boolean'заполнить переменныеintA = 5intB = 10'проверьте, верно ли оноЕсли intA = 5 Xor intB = 5 ТогдаblnResult = TrueЕщеblnResult = ЛожьКонец, еслиMsgBox blnResultКонец подписки |
В приведенном выше примере, поскольку ОДНО из условий ИСТИНА, окно сообщения вернет ПРАВДА.
1234567891011121314151617 | Sub blnExample ()'объявляем целые числаDim intA как целое числоDim intB как целое число'объявить логическую переменнуюDim blnResult As Boolean'заполнить переменныеintA = 5intB = 5'проверьте, верно ли оноЕсли intA = 5 Xor intB = 5 ТогдаblnResult = TrueЕщеblnResult = ЛожьКонец, еслиMsgBox blnResultКонец подписки |
Однако в приведенном выше примере, поскольку ОБЕИ условия верны, окно сообщения вернет ЛОЖНЫЙ.
1234567891011121314151617 | Sub blnExample ()'объявляем целые числаDim intA как целое числоDim intB как целое число'объявить логическую переменнуюDim blnResult As Boolean'заполнить переменныеintA = 6intB = 8'проверьте, верно ли оноЕсли intA = 5 Xor intB = 5 ТогдаblnResult = TrueЕщеblnResult = ЛожьКонец, еслиMsgBox blnResultКонец подписки |
и, наконец, поскольку оба условия - ЛОЖЬ, окно сообщения также вернет ЛОЖЬ.