Поделиться через


Операторы сравнения

Используется для сравнения выражений.

Синтаксис

результат = expression1comparisonoperatorexpression2result = object1Isobject2result = stringLikepattern

Операторы сравнения состоят из следующих частей:

Part Описание
result Обязательный элемент; любая числовая переменная.
выражение Обязательный элемент; любое выражение.
comparisonoperator Обязательный элемент; любой оператор сравнения.
object Обязательный; любое имя объекта.
строка Обязательный элемент; любое строковое выражение.
pattern Обязательный элемент; любое строковое выражение или диапазон символов.

Замечания

Следующая таблица содержит список операторов сравнения и условий, определяющих, имеет ли результатзначение True, False или Null.

Оператор True, если False, если Null, если
< (Меньше) expression1<expression2 expression1>= expression2 expression1 или expression2 = NULL
<= (Меньше или равно) expression1<= expression2 expression1>expression2 expression1 или expression2 = NULL
> (Больше) expression1>expression2 expression1<= expression2 expression1 или expression2 = NULL
>= (Больше или равно) expression1>= expression2 expression1<expression2 expression1 или expression2 = NULL
= (Равно) expression1 = expression2 expression1<>expression2 expression1 или expression2 = NULL
<> (Не равно) expression1<>expression2 expression1 = expression2 expression1 или expression2 = NULL

Примечание.

Операторы Is и Like обладают особыми возможностями сравнения, которые отличаются от возможностей операторов, приведенных в таблице.

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

Если Then
Оба выражения представляют собой числовые типы данных (Byte, Boolean, Integer, Long, Single, Double, Date, Currency или Decimal) Выполните числовое сравнение.
Оба выражения имеют тип String Выполняется сравнение строк.
Одно выражение является числовым типом данных, а другое — типом Variant, который равен числу или может им быть Выполните числовое сравнение.
Одно выражение является числовым типом данных, а другое — строкой Variant, которая не может быть преобразована в число Возникает Type Mismatch ошибка.
Одно выражение — String, а другое — любое значение Variant за исключением Null Выполните строковое сравнение.
Одно выражение — Empty, а другое является числовым типом данных Выполните числовое сравнение, используя 0 в качестве выражения Empty.
Одно выражение — Empty, а другое — String Выполните строковое сравнение, используя строку нулевой длины ("") в качестве выражения Empty.

Если оба выражения expression1 и expression2 являются выражениями типа Variant, порядок их сравнения определяется их базовым типом. В следующей таблице показано, как сравниваются выражения или результат сравнения в зависимости от базового типа Variant.

Если Then
Оба выражения Variant являются числовыми Выполните числовое сравнение.
Оба выражения Variant являются строками Выполните строковое сравнение.
Одно выражение Variant числовое, а другое строка Числовое выражение меньше, чем строковое выражение.
Одно выражение VariantEmpty, а другое — числовое Выполните числовое сравнение, используя 0 в качестве выражения Empty.
Одно выражение VariantEmpty, а другое — строка Выполните строковое сравнение, используя строку нулевой длины ("") в качестве выражения Empty.
Оба выражения VariantEmpty Выражения равны.

Когда переменная Single сравнивается с переменной Double, значение Double округляется до точности типа Single. Если переменная Currency сравнивается с переменной Single или Double, значение Single или Double преобразуется в тип Currency.

Аналогично, когда переменная Decimal сравнивается с переменной Single или Double, значение Single или Double преобразуется в тип Decimal. Для типа Currency любое дробное значение менее чем 0,0001 может быть потеряно; для типа Decimal любое дробное значение менее чем 1E-28 может быть потеряно, или возможно возникновение ошибки переполнения. Потеря такого дробного значения может привести к тому, что два сравниваемых значения будут равны, когда на самом деле они не равны.

Пример

В этом примере показаны различные варианты использования операторов сравнения, которые применяются для сравнения выражений.

Dim MyResult, Var1, Var2
MyResult = (45 < 35)    ' Returns False.
MyResult = (45 = 45)    ' Returns True.
MyResult = (4 <> 3)    ' Returns True.
MyResult = ("5" > "4")    ' Returns True.

Var1 = "5": Var2 = 4    ' Initialize variables.
MyResult = (Var1 > Var2)    ' Returns True.

Var1 = 5: Var2 = Empty
MyResult = (Var1 > Var2)    ' Returns True.

Var1 = 0: Var2 = Empty
MyResult = (Var1 = Var2)    ' Returns True.

См. также

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.