Операторы сравнения
Используется для сравнения выражений.
Синтаксис
результат = 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 числовое, а другое строка | Числовое выражение меньше, чем строковое выражение. |
Одно выражение Variant — Empty, а другое — числовое | Выполните числовое сравнение, используя 0 в качестве выражения Empty. |
Одно выражение Variant — Empty, а другое — строка | Выполните строковое сравнение, используя строку нулевой длины ("") в качестве выражения Empty. |
Оба выражения Variant — Empty | Выражения равны. |
Когда переменная 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 и обратная связь.