比较运算符
用于比较表达式。
语法
结果 = 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 支持和反馈,获取有关如何接收支持和提供反馈的指南。