比较运算符

用于比较表达式

语法

结果 = expression1comparisonoperatorexpression2result = object1Isobject2result = stringLikepattern

比较运算符包含以下部分:

Part 说明
result 必需,任何数值变量
expression 必需;任何表达式。
comparisonoperator 必需;任何比较运算符。
object 必需;任何对象名称。
string 必需;任何字符串表达式
pattern 必需;任何字符串表达式或字符范围。

备注

下表包含比较运算符的列表,以及确定 结果TrueFalse 还是 Null 的条件。

运算符 满足以下条件时为 True 满足以下条件时为 False 满足以下条件时为 Null
< (小于) expression1<expression2 expression1>= expression2 expression1expression2 = Null
<= (小于或等于) expression1<= expression2 expression1>expression2 expression1expression2 = Null
> (大于) expression1>expression2 expression1<= expression2 expression1expression2 = Null
>= (大于或等于) expression1>= expression2 expression1<expression2 expression1expression2 = Null
= (等于) expression1 = expression2 expression1<>expression2 expression1expression2 = Null
<> (不等于) expression1<>expression2 expression1 = expression2 expression1expression2 = Null

注意

[!注释] IsLike 运算符具有与表中的运算符不同的特定的比较功能。

在比较两个表达式时,您无法轻松确定是将表达式作为数字还是字符串进行比较。 下表显示了当其中一个表达式不是 Variant 时如何比较表达式或结果。

If Then
两个表达式都为数值数据类型ByteBooleanIntegerLongSingleDoubleDateCurrencyDecimal 执行数值比较。
两个表达式都为 String 执行字符串比较
一个表达式为数值数据类型,另一个表达式为 Variant(即为数字或可为数字) 执行数值比较。
一个表达式为数值数据类型,另一个表达式为无法转换为数字的字符串 Variant 发生 Type Mismatch 错误。
一个表达式为 String,另一个表达式为除 Null 之外的任何 Variant 执行字符串比较。
一个表达式为 Empty,另一个表达式为数值数据类型 执行数值比较,并将 0 用作 Empty 表达式。
一个表达式为 Empty,另一个表达式为 String 执行字符串比较,并将零长度字符串 ("") 用作 Empty 表达式。

如果 expression1expression2 都为 Variant 表达式,则这两个表达式的基础类型将确定其比较方式。 下表显示如何比较表达式或比较结果,具体取决于 Variant 的基础类型。

If Then
两个 Variant 表达式都为数值表达式 执行数值比较。
两个 Variant 表达式都为字符串表达式 执行字符串比较。
一个 Variant 表达式为数值表达式,另一个表达式为字符串表达式 数值表达式小于字符串表达式。
一个 Variant 表达式为 Empty 表达式,另一个表达式为数值表达式 执行数值比较,并将 0 用作 Empty 表达式。
一个 Variant 表达式为 Empty 表达式,另一个表达式为字符串表达式 执行字符串比较,并将零长度字符串 ("") 用作 Empty 表达式。
两个 Variant 表达式都为 Empty 表达式 两个表达式相等。

在将 SingleDouble 进行比较时,会将 Double 舍入到 Single 的精度。 如果将 CurrencySingleDouble 进行比较,则 SingleDouble 将转换为 Currency

同样,在将 DecimalSingleDouble 进行比较时,则 SingleDouble 将转换为 Decimal。 对于 Currency,可能会丢失任何小于 .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 支持和反馈,获取有关如何接收支持和提供反馈的指南。