除了使用 If...Then...Else 和 Select Case 条件进行检查之外,我们还可以使用以下检查:
如果值是数字,IsNumeric(我们在上一课中使用的函数)返回 TRUE (TRUE),如果 - 不是数字,则返回 FALSE (FALSE):
If IsNumeric(Range("A1")) = True Then '如果价值是数字...
下面的代码产生与前一个相同的效果(我们不需要 include = True 因为构造本身就是一个条件检查):
If IsNumeric(Range("A1")) = True Then '如果价值是数字...
如果我们想检查一个值是否不是数字,我们可以通过两种方式来实现:
If IsNumeric(Range("A1")) = False Then '如果值不是数字...
If Not IsNumeric(Range("A1")) Then '如果值不是数字...
我们再看几个与 IsNumeric 类似的函数:
If IsDate(Range("A1")) Then '如果值为日期...
If IsEmpty(Range("A1")) Then '如果为空...
If var_object Is Nothing Then '如果未定义对象...
要根据变量的类型执行命令,我们需要使用 VarType 函数。
一旦我们输入“=”符号,变量类型列表就会出现:
If VarType(my_variable) = vbInteger Then 'IF my_variable 是变量类型 Integer ...
常量的值:
持续的 | 价值 |
---|---|
vbEmpty | 0 |
vbNull | 1 |
vbInteger | 2 |
vbLong | 3 |
vbSingle | 4 |
vbDouble | 5 |
vbCurrency | 6 |
vbDate | 7 |
vbString | 8 |
vbObject | 9 |
vbError | 10 |
If VarType(my_variable) = vbInteger Then 'IF my_variable 是变量类型 Integer ... '等同于: If VarType(my_variable) = 2 Then 'IF my_variable 是变量类型 Integer ...
早些时候我们使用了以下代码片段:
my_variable = "Example 12345" If my_variable = "Example 12345" Then '=> 正确 (TRUE)
在这种情况下,两个磁带是相同的,但是如果我们想检查变量是否包含值“12345”;如果不考虑其他字符,那么我们应该使用 Like 命令,以及我们要查找的值前后的运算符 *(星号)。
运算符 *(星号)被解析为:任何字符或字符集:
my_variable = "Example 12345" If my_variable Like "*12345*" Then '=> 正确 (TRUE)
运算符 #(哈希)被解码为:从 0 到 9 的任何单个数字字符:
my_variable = "Example 12345" If my_variable Like "Example 12###" Then '=> 正确 (TRUE)
操作员? (问号)被破译为:任何单个字符:
my_variable = "Example 12345" If my_variable Like "?xample?1234?" Then '=> 正确 (TRUE)
我们还可以以相同的方式使用特定字符或一组字符:
my_variable = "Example 12345" If my_variable Like "[DEF]xample 1234[4-7]" Then '=> 正确 (TRUE)
操作员! (感叹号)添加在 [ 之后意味着:任何未括在方括号中的字符:
my_variable = "Example 12345" If my_variable Like "[!GHIJ]xample 1234[!6-9]" Then '=> 正确 (TRUE)