Сравнение VBA OperaТорс: Не равны, Less чем или равно

⚡ Умное резюме

Сравнение VBA OperaОператоры проверяют одно значение на соответствие другому и возвращают True или False. На этой странице определены шесть операторов, показано их использование в операторе If, объясняется, как сравниваются текст и даты, и перечислены ошибки, приводящие к неверным результатам.

  • Цель: Операторы сравнения проверяют данные, проверяя условие, которое оценивается как истинное или ложное.
  • 🔢 Six OperaТорс: Равно, меньше, больше, не равно, меньше или равно, и больше или равно.
  • 🔁 Двойная роль: Знак равенства используется для сравнения внутри условия и присвоения значения вне его.
  • 🧪 Условное выражение: Каждое сравнение помещается внутри операторов If, ElseIf или Do While для управления выполнением соответствующего кода.
  • 🔤 Текст и даты: Строки сравниваются посимвольно, а даты — как порядковые номера.
  • ⚠️ Точная ловушка: Две Double Значения, которые кажутся идентичными, могут не пройти проверку на равенство, поэтому сравнивайте округленную разницу.

Сравнение VBA OperaTORs

Сравнение VBA OperaTORs

Это операторы, используемые для сравнения значений. К операторам сравнения относятся: равно, меньше, больше и не равно.

Операторы сравнения используются для сравнения значений в целях проверки. Допустим, вы разработчик...ping Простое приложение для кассового аппарата. В этом приложении необходимо проверять введенные значения перед их отправкой. В таких случаях можно использовать операторы сравнения. Этот оператор проверяет отрицательные числа или гарантирует, что уплаченная сумма не превышает выставленную. Операторы сравнения очень полезны в подобных ситуациях.

Любое сравнение возвращает одно из двух значений: True или False, и никогда не число. Именно на этот результат и воздействует оператор If.

В следующей таблице перечислены операторы сравнения, определенные в VBA.

оператор Описание
= Равно: проверяет, равны ли два значения. Он также используется как оператор присваивания.
< Less than: проверяет, меньше ли значение слева значения справа.
> Функция «Больше» проверяет, больше ли значение слева значения справа.
<> Проверка на "Не равно": проверяет, отличаются ли два значения друг от друга.
<= Less «больше или равно»: проверяет, меньше ли значение слева или равно значению справа.
>= «Больше или равно»: проверяет, больше ли значение слева или равно значению справа.

Показ того, как каждый оператор применяется к двум переменным, упрощает прогнозирование возвращаемого результата.

Сравнение VBA Operaторс с примером

В следующей таблице показано сравнение Excel VBA. OperaТоры с примерами и выводом.

S / N оператор Пример Результат
1 = Если x = z Тогда Возвращает true, если они равны, иначе возвращает false
2 < Если x < z Тогда Возвращает true, если x меньше z, иначе возвращает false
3 > Если х > z Тогда Возвращает true, если x больше z, иначе возвращает false
4 <> Если х <> z Тогда Возвращает true, если они не равны, в противном случае возвращается false
5 <= Если x <= z Тогда Возвращает true, если x меньше или равно z, в противном случае возвращается false
6 >= Если x >= z, то Возвращает true, если x больше или равно z, в противном случае возвращается false

Пример исходного кода

Равное сравнение Operaтор

If 2 = 1 Then
    MsgBox "True", vbOKOnly, "Equal Operator"
Else
    MsgBox "False", vbOKOnly, "Equal Operator"
End If

ВОТ,

  • «Если 2 = 1, то… иначе… завершится если» использует оператор if для оценки условия «2 = 1»
  • «СообщениеBox... " Это встроенная функция, которая отображает окно сообщения.
    • Первый параметр «True» или «False» — это то, что будет отображаться в окне сообщения. В нашем примере 2 не равно 1, поэтому в поле сообщения будет отображаться «false».
    • Второй параметр «vbOKOnly» — это кнопка, которая отображается в окне сообщения.
    • Третий параметр «Равно» Opera«tor» — заголовок окна сообщения.

Выполнение приведенного выше кода дает следующие результаты

равным Operaтор

Этот единственный тест — простейшая форма. Настоящие макросы объединяют сравнения и разветвляются между несколькими результатами.

Как использовать сравнение Operaторы в операторе If

Оператор сравнения сам по себе редко бывает полезен. Его результат «Истинно» или «Ложно» передается в структуру принятия решений, и оператор «Если» — это тот, который вы будете использовать чаще всего. В приведенном ниже примере оценивается значение, хранящееся в ячейке A1, и рядом с ним выводится результат.

Sub GradeScore()
    Dim Score As Long

    Score = Sheet1.Range("A1").Value

    If Score >= 90 Then
        Sheet1.Range("B1").Value = "Distinction"
    ElseIf Score >= 50 Then
        Sheet1.Range("B1").Value = "Pass"
    ElseIf Score < 0 Then
        MsgBox "A score cannot be negative", vbCritical, "Invalid Entry"
    Else
        Sheet1.Range("B1").Value = "Fail"
    End If
End Sub

Макрос считывает результат один раз, а затем последовательно проверяет его на соответствие трем условиям. Четыре пункта объясняют, почему он ведет себя именно так.

  • Порядок имеет значение: VBA останавливается на первой ветви, которая возвращает True. Размещение Баллы >= 50 до Баллы >= 90 Каждый высокий балл будет считаться проходным.
  • В противном случае, это универсальное решение: Любое значение, не прошедшее ни одну предыдущую проверку, передается в функцию Else, поэтому ни один входной параметр не остается необработанным.
  • Без цепочки: VBA не может читать 0 <= Оценка <= 100, Написать Если оценка >= 0 и оценка <= 100, то используя логические операторы .
  • Тот же тест, другие структуры: Идентичные условия управляют операторами Do While и Select Case, поэтому эти операторы применяются ко всем циклам, которые вы пишете.

💡 Совет: Объявите переменную с числовым типом, как показано ниже. Приглушенный счет до тех пор, покаЕсли значение остается вариантом, содержащим текст, «9» > «10» Возвращает True, поскольку сравнение выполняется посимвольно.

Сравнение текста и дат в VBA

Numbers Сравнивать можно точно так же, как подсказывают арифметические вычисления, но текст и даты подчиняются своим собственным правилам, и оба варианта удивляют новичков.

Строки сравниваются по одному символу за раз, используя их позицию в результатах сортировки, поэтому "Apple" < "Banana" возвращает True. По умолчанию сравнение чувствительно к регистру, что означает "guru99" = "Guru99” возвращает False. Размещение Опция Сравнить текст Добавление в начало модуля заставляет все сравнения строк в этом модуле игнорировать регистр. Для одной проверки без изменения модуля используйте StrComp с аргументом vbTextCompare.

Даты хранятся в виде порядковых номеров, начиная с 30 декабря 1899 года, поэтому они напрямую сравниваются с данными тех же шести операторов. Если DueDate < Date, то Функция корректно определяет просроченный товар, поскольку Date возвращает текущую системную дату в виде серийного номера того же типа. Единственная ошибка — это дата, хранящаяся в текстовом формате: «01/02/2026», считанная из импортированного файла, является строкой, а не датой, и сравнение происходит в алфавитном порядке. Перед тестированием преобразуйте её с помощью CDate.

Знание правил для каждого типа устраняет большинство неожиданностей, но некоторые ошибки все же случаются у опытных разработчиков.

Распространенные ошибки при сравнении значений в VBA

Пять перечисленных ниже проблем объясняют большинство сравнений, дающих неожиданный результат.

  • Задание ошибочно приняли за сравнение: Вне определённых условий, х = 5 сохраняет 5 в x. Внутри оператора If те же символы проверяют равенство. В VBA нет отдельного оператора ==, поэтому внимательно читайте контекст.
  • Тестирование Double Значения для точного равенства: Сохраненная точность означает, что 0.1 + 0.2 = 0.3 возвращает False. Вместо этого сравните округленную разницу, например. Если Abs(a – b) < 0.000001, то.
  • Сравнивать что угодно с Null: Значение Null ничему не равно, даже другому значению Null. Проверяйте с помощью IsNull, а не... = Нулевой.
  • Сравнение текста с числом: Ячейка, содержащая текст «100», не равна числу 100. Перед проверкой выполните преобразование с помощью CLng или CDbl.
  • Чтение .Text вместо .Value: Свойство .Text возвращает отображаемый текст, который обрезается в соответствии с шириной столбца и форматированием. Всегда сравнивайте значение с .Value.

Скачайте указанный выше файл Excel. Code

Часто задаваемые вопросы (FAQ)

Нет. VBA оценивает первое сравнение как истинное или ложное, а затем сравнивает этот результат с 10, что дает вводящий в заблуждение ответ. Напишите два теста отдельно и объедините их с помощью оператора И.

Оператор `like` сравнивает строку с шаблоном, а не с точным значением. В качестве подстановочных символов используются звездочка (*) для любых символов и вопросительный знак (*) для одного символа, например, «Guru99” Как “Guru* возвращает True.

Используйте оператор Is, например, If ws Is Nothing Then. Знак равенства сравнивает значения, а Is проверяет, указывают ли две переменные объекта на один и тот же объект, что является единственной допустимой проверкой для объектов.

Да. Опишите правило простыми словами, например, пометить любой заказ свыше 500, размещенный до сегодняшнего дня, и ИИ-помощник вернет соответствующее условие If. Перед тем как доверять этому правилу, проверьте граничные значения.

Да. Вставьте блок «Если» и помощника на основе искусственного интеллекта. tracЗатем определяется, какая ветвь обрабатывает каждое значение, после чего указывается на недостижимый ElseIf или на сравнение текста и числа. Подтвердите исправление пошагово.ping через код.

Подведем итог этой публикации следующим образом: