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

Сравнение 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торы в операторе 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

