VBA:是否有可能在单行“Nothing”中声明和实例化对象?

时间:2012-06-29 01:04:59

标签: vba

以下代码在一行中声明并实例化一个对象,然后尝试将其设置为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

突然消息是“真实”。我有很多我已经声明并在一行中实例化的对象,可能需要做什么。有没有办法在不改变所有声明的情况下做到这一点?

另外,如果有人能解释为什么会这样,我会很感激。我在VBA自学成才,对语言不太了解......与我常用的语言相比,这很奇怪..

1 个答案:

答案 0 :(得分:1)

尝试检查本地窗口中的参考变量,该变量应向您解释。如前所述,问题是由于Dim ... As New ... myObject 引用变量被分配给msgbox语句中的对象。如果你之后将其设置为空,那就再也没有了。