【发布时间】:2012-06-29 13:36:12
【问题描述】:
以下代码在一行中声明并实例化一个对象,然后尝试将其设置为 Nothing
Dim myObject As New MyClass
Set myObject = Nothing
MsgBox (myObject Is Nothing) 'FALSE
第三行的消息是“False”。但是,如果我将声明和实例化分成两行,如下所示:
Dim myObject As MyClass
Set myObject = New MyClass
Set myObject = Nothing
MsgBox (myObject Is Nothing) 'TRUE
突然消息是“真”。我已经在一行中声明并实例化了很多对象,可能需要将其设为 Nothing。有没有办法在不更改所有声明的情况下做到这一点?
另外,如果有人能解释为什么会这样,我将不胜感激。我是 VBA 自学成才,并不太懂这门语言……与我常用的语言相比,这很奇怪……
【问题讨论】:
-
请参阅此处cpearson.com/excel/DeclaringVariables.aspx 关于“自动实例化”变量的注释
-
隐式类型转换和自动初始化具有微妙的后果,对调试来说是可怕的。 C 派生语言之所以流行,正是因为它们不试图提供帮助。
标签: vba