首页 文章

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

提问于
浏览
1

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

  • 1

    尝试检查 Locals window 中的引用变量,该变量应该向您解释 . 如前所述,问题是由于 Dim ... As New ... myObject 引用变量被分配给msgbox语句中的对象 . 如果你之后将其设置为空,那将不再是任何事情 .

相关问题