比较运算符

用于比较表达式。

语法

结果 = expression1comparisonoperatorexpression2result = object1Isobject2result = stringLikepattern

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

Part 说明
result 必需,任何数值变量。
expression 必需;任何表达式。
comparisonoperator 必需;任何比较运算符。
object 必需;任何对象名称。
string 必需;任何字符串表达式。
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 时如何比较表达式或结果。

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

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

If 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,可能会丢失任何小于 .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 支持和反馈,获取有关如何接收支持和提供反馈的指南。