VBA的奇怪行为:
这在第3行中给出了错误94“非法使用Null”:
Function test1()
Dim a As String
a = Null
test1 = a
End Function
但是......这完美无缺:
Function test1()
Dim a, b As String
a = Null
test1 = a
End Function
唯一不同的是第2行中的变量b,它从未使用过! WTF正在这里?
答案 0 :(得分:6)
在第二个代码示例中......
Dim a, b As String
As String
仅适用于最后一个变量 b 。变量 a 是Variant类型。
Variant变量可以接受Null。 String变量不能。
在第一个代码示例中, a 显式声明为String。这就是为什么它不会接受Null。
如果您希望 a 和 b 都是String类型,则必须明确声明每个类型...
Dim a As String, b As String