Разное

Vba операторы логические: VBA Excel. Логические операторы

Содержание

VBA Excel. Логические операторы

Операторы, использующиеся в VBA Excel для отрицания и сравнения логических выражений. Синтаксис, принимаемые значения, приоритет логических операторов.

1. Логические операторы в VBA Excel

1.1. Оператор «Not»

1.2. Оператор «And»

1.3. Оператор «Or»

1.4. Оператор «Xor»

1.5. Оператор «Eqv»

1.6. Оператор «Imp»

2. Приоритет логических операторов

Логические операторы в VBA Excel

Оператор «Not»

«Not» – это оператор логического отрицания (инверсия), который возвращает True, если условие является ложным, и, наоборот, возвращает False, если условие является истинным.

Синтаксис:

Результат = Not Условие

Таблица значений:

УсловиеРезультат
TrueFalse
FalseTrue

Оператор «And»

«And» – это оператор логического умножения (логическое И, конъюнкция), который возвращает значение True, если оба условия являются истинными.

Синтаксис:

Результат = Условие1 And Условие2

Таблица значений:

Условие1Условие2Результат
TrueTrueTrue
TrueFalseFalse
FalseTrueFalse
FalseFalseFalse

Оператор «Or»

«Or» – это оператор логического сложения (логическое ИЛИ, дизъюнкция), который возвращает значение True, если одно из двух условий является истинным, или оба условия являются истинными.

Синтаксис:

Результат = Условие1 Or Условие2

Таблица значений:

Условие1Условие2Результат
TrueTrueTrue
TrueFalseTrue
FalseTrueTrue
FalseFalseFalse

Оператор «Xor»

«Xor» – это оператор логического исключения (исключающая дизъюнкция), который возвращает значение True, если только одно из двух условий является истинным.

Синтаксис:

Результат = Условие1 Xor Условие2

Таблица значений:

Условие1Условие2Результат
TrueTrueFalse
TrueFalseTrue
FalseTrueTrue
FalseFalseFalse

Оператор «Eqv»

«Eqv» – это оператор логической эквивалентности (тождество, равенство), который возвращает True, если оба условия имеют одинаковое значение.

Синтаксис:

Результат = Условие1 Eqv Условие2

Таблица значений:

Условие1Условие2Результат
TrueTrueTrue
TrueFalseFalse
False
True
False
FalseFalseTrue

Оператор «Imp»

«Imp» – это оператор логической импликации, который возвращает значение False, если первое (левое) условие является истинным, а второе (правое) условие является ложным, в остальных случаях возвращает True.

Синтаксис:

Результат = Условие1 Imp Условие2

Таблица значений:

Условие1Условие2Результат
TrueTrueTrue
TrueFalseFalse
FalseTrueTrue
FalseFalseTrue

Приоритет логических операторов

Приоритет определяет очередность выполнения операторов в одном выражении. Очередность выполнения логических операторов в VBA Excel следующая:

  1. «Not» – логическое отрицание;
  2. «And» – логическое И;
  3. «Or» – логическое ИЛИ;
  4. «Xor» – логическое исключение;
  5. «Eqv» – логическая эквивалентность;
  6. «Imp» – логическая импликация.

Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.

Логическое значение VBA — voxt.ru

Логический оператор Excel VBA

Boolean — это тип данных, а также встроенный тип данных в VBA, этот тип данных используется для логических ссылок или логических переменных, потому что значение этого типа данных имеет значение TRUE или FALSE, которое используется для логического сравнения, объявление этого тип данных аналогичен всем другим типам данных.

Как я уже сказал, логический тип данных может содержать ИСТИНА или ЛОЖЬ в качестве данных, но он также может содержать номер 1 как ИСТИНА и номер 0 как ЛОЖЬ.

Итак, TRUE представлено 1, а FALSE представлено 0. Когда мы объявляем переменную как BOOLEAN, она занимает 2 байта памяти компьютера.

Вы можете свободно использовать это изображение на своем веб-сайте, в шаблонах и т. Д. Пожалуйста, предоставьте нам ссылку с указанием авторстваКак указать авторство?Ссылка на статью должна содержать гиперссылку
Например:
Источник: VBA Boolean (wallstreetmojo.com)

Работа с логическим типом данных на языке программирования VBA

Теперь давайте посмотрим на пример установки значений логического оператора для переменных. используя код VBAИспользование кода VBAКод VBA относится к набору инструкций, написанных пользователем на языке программирования приложений Visual Basic в редакторе Visual Basic (VBE) для выполнения определенной задачи.читать далее.

Вы можете скачать этот шаблон Excel для логических данных VBA здесь — Шаблон Excel для логических данных VBA

Выполните следующие шаги, чтобы получить немного знаний о логических типах данных в VBA.

Шаг 1: Сначала запустите подпроцедуру, присвоив имя макросу.

Код:

Sub Boolean_Example1()
End Sub

Шаг 2: Объявите переменную как BOOLEAN.

Код:

Sub Boolean_Example1()
  Dim MyResult As Boolean
End Sub

Шаг 3: Теперь для переменной MyResult примените простой логический тестЛогический тестЛогический тест в Excel дает аналитический результат: истинный или ложный. Оператор равенства «=» является наиболее часто используемым логическим тестом.читать далее как 25> 20.

Код:

Sub Boolean_Example1()
  Dim MyResult As Boolean
  MyResult = 25 > 20
End Sub

Шаг 4: Теперь покажите результат в виде окно сообщения в VBAОкно сообщения в VBAФункция VBA MsgBox — это функция вывода, которая отображает обобщенное сообщение, предоставленное разработчиком. Этот оператор не имеет аргументов, и персонализированные сообщения в этой функции записываются в двойных кавычках, а для значений предоставляется ссылка на переменную.

читать далее.

Код:

Sub Boolean_Example1()
  Dim MyResult As Boolean
  MyResult = 25 > 20
  MsgBox MyResult
End Sub

Теперь запустите макрос ExcelМакрос ExcelМакрос в Excel — это серия инструкций в виде кода, который помогает автоматизировать ручные задачи, тем самым экономя время. Excel выполняет эти инструкции пошагово для заданных данных. Например, его можно использовать для автоматизации повторяющихся задач, таких как суммирование, форматирование ячеек, копирование информации и т. Д., Тем самым быстро заменяя повторяющиеся операции несколькими щелчками мыши.
читать далее через клавишу F5 или вручную и смотрите результат.

Хорошо, мы получили результат ИСТИНА, потому что число 25 больше числа 20, поэтому логическая проверка верна, а результат ИСТИНА.

Это основная структура логических типов данных VBA.

Логический тип данных не может содержать, кроме ИСТИНА или ЛОЖЬ.

VBA Boolean — это логический тип данных; он содержит TURE или FALSE. Любое другое значение, кроме ИСТИНА или ЛОЖЬ, покажет сообщение об ошибке как «Несоответствие типа» в VBA.

Например, посмотрите на приведенный ниже код.

Код:

Sub Boolean_Example2()
  Dim BooleanResult As Boolean
  BooleanResult = "Hello"
  MsgBox BooleanResult
End Sub

В приведенном выше коде я объявил переменную BooleanResult как Boolean.

 Dim BooleanResult As Boolean

В следующей строке я присвоил объявленной переменной значение «Hello».

BooleanResult = "Hello"

Я объявил переменную как Boolean, но присвоил ей значение «Hello», которое отличается от логических значений, то есть TRUE или FALSE.

Когда я запускаю этот код с помощью клавиши F5 или вручную, я получаю ошибку несоответствия типа из-за значения несоответствия типа данных.

Все числа — ИСТИНА, а ноль — ЛОЖЬ.

Как я уже сказал, ИСТИНА представлено числом 1, а ЛОЖЬ — нулем. Например, посмотрите на приведенный ниже код в VBA.

Код:

Sub Boolean_Example3()
    Dim BooleanResult As Boolean
    BooleanResult = 1
    MsgBox BooleanResult
End Sub

Я присвоил переменной значение 1, и результат будет ИСТИНА.

Теперь посмотрите на приведенный ниже код.

Код:

Sub Boolean_Example3()
    Dim BooleanResult As Boolean
    BooleanResult = 0
    MsgBox BooleanResult
End Sub

В этом коде я присвоил переменной значение 0, и это покажет результат как ЛОЖЬ.

Не только 1 или 0 we, но и любое число, присвоенное переменной, кроме нуля, также рассматривается как ИСТИНА, и только ноль будет рассматриваться как 1.

Логический оператор VBA с условием IF

Поскольку тип данных Boolean может содержать только логические значения, он лучше всего подходит для использования с условием IF в VBA.

Код:

Sub Boolean_Example2()
   Dim Number1 As Integer
   Dim Number2 As Integer
   Number1 = 80
   Number2 = 75
   If Number1 >= Number2 Then
       MsgBox True
   Else
       MsgBox False
  End If
End Sub

Таким образом, мы можем использовать логические типы данных Excel VBA для хранения результатов как ИСТИНА или ЛОЖЬ.

УЗНАТЬ БОЛЬШЕ >>

Post Views: 650

Похожие записи

Прокрутить вверх

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

  • Is Operator
  • Like Operator
  • VBA позволяет использовать логические операторы And , Or , Not , Xor для сравнения значений. Операторы считаются «булевыми», что означает, что в результате они возвращают True или False.

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

    Если вы хотите узнать, как использовать операторы сравнения, щелкните здесь: Операторы сравнения VBA — Not Equal to & More

     

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

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

     Dim intA как целое число
    Dim intB как целое число
    Dim blnResult As Boolean
    
    интервал = 5
    интервал = 5
    
    Если intA = 5 И intB = 5 Тогда
    блнрезультат = Истина
    Еще
    blnResult = Ложь
    End If 

     

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

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

     intA = 5
    intB = 5 

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

     Если intA = 5 И intB = 5 Тогда
    блнрезультат = Истина
    Еще
    blnResult = Ложь
    End If 

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

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

     

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

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

     Dim intA As Integer
    Dim intB как целое число
    Dim blnResult As Boolean
    
    интервал = 5
    интервал = 10
    
    Если intA = 5 или intB = 5 Тогда
        блнрезультат = Истина
    Еще
        blnResult = Ложь
    Конец, если 

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

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

     intA = 5
    intB = 10 

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

     Если intA = 5 или intB = 5 Тогда
        блнрезультат = Истина
    Еще
        blnResult = Ложь
    Конец, если 

    AS Inta Значение составляет 5, BLNRESULT Возвращает True:

    Изображение 2. Использование OR LOGICAL Operator в VBA

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

    7

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

     Dim intA как целое число
    Dim blnResult As Boolean
    
    интервал = 5
    
    Если Нет (intA = 6), то
        блнрезультат = Истина
    Еще
        blnResult = Ложь
    End If 

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

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

     intA = 5 

     

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

     Если Нет (intA = 6), то
        блнрезультат = Истина
    Еще
        blnResult = Ложь
    Конец, если 

    AS Inta Значение составляет 5, BLNRESULT Возвращает True:

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

    Использование xor Logical Operator

    77

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

     Dim intA As Integer
    Dim intB как целое число
    Dim blnResult As Boolean
    
    интервал = 5
    интервал = 10
    
    Если intA = 5 Xor intB = 5 Тогда
        блнрезультат = Истина
    Еще
        blnResult = Ложь
    End If 

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

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

     intA = 5
    intB = 10 

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

     If intA = 5 Xor intB = 5 Then
        блнрезультат = Истина
    Еще
        blnResult = Ложь
    End If 

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

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

    Оператор Is

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

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

     Sub CompareObjects()
    Dim ws1 как рабочий лист, ws2 как рабочий лист
    
    Установить ws1 = Листы ("Лист1")
    Установить ws2 = Листы ("Лист2")
    
    Если ws1 Это ws2 Тогда
        MsgBox "Тот же WS"
    Еще
        MsgBox "Разные WS"
    Конец, если
    
    Конец суб 

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

    Оператор Like

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

     Подписка LikeDemo ()
    
    Dim strName как строка
    Dim blnResult As Boolean
    
    strName = "Мистер Майкл Джеймс"
    
    Если strName Нравится "Mr*" Тогда
    блнрезультат = Истина
    Еще
    blnResult = Ложь
    Конец, если
    
    Конец суб 

     

    Кодирование VBA стало проще

    Прекратите искать код VBA в Интернете. Узнайте больше об AutoMacro — конструкторе кода VBA, который позволяет новичкам создавать процедуры с нуля с минимальными знаниями в области кодирования и множеством функций, позволяющих сэкономить время для всех пользователей!

    Узнайте больше!

    Логические и побитовые операторы — Visual Basic

    • Статья
    • 5 минут на чтение

    Логические операторы сравнивают логических выражений и возвращают логический результат. Операторы And , Or , AndAlso , OrElse и Xor являются бинарными , потому что они принимают два операнда , а Not 3 потому что он принимает один операнд

    7 . Некоторые из этих операторов также могут выполнять побитовые логические операции над целыми значениями.

    Унарный логический оператор

    Оператор Not выполняет логическое отрицание логического выражения. Это дает логическую противоположность своему операнду. Если выражение оценивается как True , то Not возвращает False ; если выражение оценивается как False , то Not возвращает True . Следующий пример иллюстрирует это.

     Размер x, y Как логический
    х = не 23 > 14
    у = не 23 > 67
    ' Предыдущие операторы устанавливают x в False и y в True.
     

    Двоичные логические операторы

    Оператор И выполняет логическое соединение с двумя логическими выражениями. Если оба выражения оцениваются как True , то And возвращает True . Если хотя бы одно из выражений оценивается как False , то And возвращает False .

    Оператор Or выполняет логическое разъединение или включение двух логических выражений. Если любое выражение оценивается как True , или оба оцениваются как True , затем Или возвращает True . Если ни одно из выражений не дает True , Or возвращает False .

    Оператор Xor выполняет логическое исключение для двух логических выражений . Если ровно одно выражение оценивается как True , но не оба, Xor возвращает True . Если оба выражения оцениваются как True или оба оцениваются как False , Xor возвращает False .

    В следующем примере показаны операторы And , Or и Xor .

     Размер a, b, c, d, e, f, g Как логический
    а = 23 > 14 и 11 > 8
    б = 14 > 23 А 11 > 8
    ' Предыдущие операторы устанавливают a в True и b в False.
    с = 23 > 14 или 8 > 11
    г = 23 > 67 или 8 > 11
    ' Предыдущие операторы устанавливают c в True и d в False.
    е = 23 > 67 Xили 11 > 8
    f = 23 > 14 Xили 11 > 8
    g = 14 > 23 Xor 8 > 11
    ' Предыдущие операторы устанавливают e в True, f в False и g в False.
     

    Короткие логические операции

    Оператор AndAlso очень похож на оператор And тем, что он также выполняет логическое соединение двух логических выражений . Ключевое различие между ними заключается в том, что и также демонстрируют поведение , замыкающее . Если первое выражение в выражении AndAlso оценивается как False , то второе выражение не оценивается, поскольку оно не может изменить окончательный результат, и AndAlso возвращает False .

    Аналогично, оператор OrElse выполняет логическую дизъюнктуру для двух логических выражений . Если первое выражение в выражении OrElse оценивается как True , то второе выражение не оценивается, поскольку оно не может изменить окончательный результат, а OrElse возвращает True .

    Короткое замыкание Компромиссы

    Короткое замыкание может повысить производительность за счет отсутствия оценки выражения, которое не может изменить результат логической операции. Однако, если это выражение выполняет дополнительные действия, при сокращении эти действия пропускаются. Например, если выражение включает вызов Процедура функции , эта процедура не вызывается, если выражение закорочено, и любой дополнительный код, содержащийся в Функция , не выполняется. Таким образом, функция может запускаться только изредка и может быть протестирована неправильно. Или логика программы может зависеть от кода в функции .

    Следующий пример иллюстрирует разницу между и , или и их короткозамыкающими аналогами.

     Количество затемнений Целое число = 12
    Уменьшить максимально разрешенный как целое число = 45
    Dim grandTotal как целое число
     
     Если количество > Максимальное Разрешено И проверитьЕслиДействительно(сумма) Тогда
        ' Предыдущий оператор вызывает функцию checkIfValid().
    Конец, если
    Если количество > Максимальное Разрешенное ИТакже проверьтеЕслиДействительно(сумма) Тогда
        ' Предыдущий оператор не вызывает функцию checkIfValid(). 
    Конец, если
    Если количество < максимальное разрешенное или проверить, если допустимо (сумма), то
        ' Предыдущий оператор вызывает функцию checkIfValid().
    Конец, если
    Если количество < максимальное разрешенное или иначе проверить, если допустимо (сумма), то
        ' Предыдущий оператор не вызывает функцию checkIfValid().
    Конец, если
     
     Функция checkIfValid(ByVal checkValue As Integer) As Boolean
        Если значение проверки > 15 Тогда
            MsgBox(CStr(checkValue) & "не является допустимым значением.")
            ' Предупреждение MsgBox не отображается, если вызов
            ' checkIfValid() является частью сокращенного выражения.
            Вернуть ложь
        Еще
            grandTotal += контрольное значение
            ' Значение grandTotal не обновляется, если вызов
            ' checkIfValid() является частью сокращенного выражения.
            Вернуть истину
        Конец, если
    Конечная функция
     

    Обратите внимание, что в предыдущем примере некоторый важный код внутри checkIfValid() не запускается при коротком замыкании вызова. Первый оператор If вызывает checkIfValid() , хотя 12 > 45 возвращает False , потому что And не замыкает. Второй оператор If не вызывает checkIfValid() , потому что когда 12 > 45 возвращает False , AndAlso закорачивает второе выражение. Третий оператор If вызывает checkIfValid() , хотя 12 < 45 возвращает True , потому что Or не закорачивает. Четвертый оператор If не вызывает checkIfValid() , потому что когда 12 < 45 возвращает True , OrElse замыкает второе выражение.

    Побитовые операции

    Побитовые операции оценивают два целых значения в двоичной форме (с основанием 2). Они сравнивают биты в соответствующих позициях, а затем присваивают значения на основе сравнения. Следующий пример иллюстрирует 9Оператор 0245 и .

     Dim x As Integer
    х = 3 и 5
     

    В предыдущем примере значение x устанавливается равным 1. Это происходит по следующим причинам:

    • Значения обрабатываются как двоичные:

      3 в двоичной форме = 011

      5 в двоичной форме = 101

    • Оператор и сравнивает двоичные представления по одной двоичной позиции (биту) за раз. Если оба бита в данной позиции равны 1, то в результате в эту позицию помещается 1. Если какой-либо из битов равен 0, то 0 помещается в эту позицию в результате. В предыдущем примере это работает следующим образом:

      011 (3 в двоичной форме)

      101 (5 в двоичной форме)

      001 (Результат в двоичной форме)

    • Результат считается десятичным. Значение 001 представляет собой двоичное представление 1, поэтому x = 1,

      .

    Побитовая операция или аналогична, за исключением того, что 1 присваивается результирующему биту, если один или оба сравниваемых бита равны 1.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *