www.ПЕРВЫЕ ШАГИ.ru :: Шаг 85 - Операторы сравнения

VBA

Шаг 85 - Операторы сравнения

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

результат = выражение1 операторСравнения выражение2
результат = объект1 Is объект2
результат = строка Like образец

Параметры
результат
Обязательный; любая числовая переменная.
выражение
Обязательный; любое выражение.
операторСравнения
Обязательный; любой оператор сравнения.
объект
Обязательный; любое имя объекта.
строка
Обязательный; любое строковое выражение.
образец
Обязательный; любое строковое выражение или диапазон символов.

Замечания
Ниже приведен список операторов сравнения и условия, при которых результат имеет значение True, False или Null:

Оператор			True					False				Null
< (Меньше)		выражение1 < выражение2		выражение1 <= выражение2	выражение1 или выражение2 = Null
<= (Меньше или равняется)	выражение1 <= выражение2		выражение1 < выражение2	выражение1 или выражение2 = Null
> (Больше)		выражение1 > выражение2		выражение1 >= выражение2	выражение1 или выражение2 = Null
>= (Больше или равняется)	выражение1 >= выражение2		выражение1 > выражение2	выражение1 или выражение2 = Null
= (Равняется)		выражение1 = выражение2		выражение1 <> выражение2	выражение1 или выражение2 = Null
<> (Не равняется)		выражение1 <> выражение2		выражение1 = выражение2	выражение1 или выражение2 = Null

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

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

Если оба операнда, выражение1 и выражение2, принадлежат к типу Variant, то способ сравнения определяется подтипами, к которым они принадлежат. В следующей таблице показано, как осуществляется сравнение в зависимости от подтипов типа Variant:

Операнды						Операция
Оба выражения типа Variant имеют числовые значения.	Сравнение чисел.
Оба выражения типа Variant имеют строковые значения.	Сравнение строк.
Одно из выражений типа Variant является числовым, 
а другое строковым.				Числовое выражение считается меньшим, чем строковое.
Одно из выражений типа Variant имеет значение Empty, 
а другое числовое значение.				Сравнение чисел, где значение Empty рассматривается как 0.
Одно из выражений типа 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)		' Возвращает False.
MyResult = (45 = 45)		' Возвращает True.
MyResult = (4 <> 3)		' Возвращает True.
MyResult = ("5" > "4")		' Возвращает True.

Var1 = "5": Var2 = 4		' Инициализирует переменные.
MyResult = (Var1 > Var2)		' Возвращает True.

Var1 = 5: Var2 = Empty
MyResult = (Var1 > Var2)		' Возвращает True.

Var1 = 0: Var2 = Empty
MyResult = (Var1 = Var2)		' Возвращает True.


Предыдущий Шаг | Следующий Шаг
Автор Каев Артем.