Excel VBA中全局变量的生存期是多少?

我有一个工作簿,该工作簿声明了一个旨在容纳COM对象的全局变量。


Global obj As Object

我在Workbook_Open事件中将其初始化,如下所示:


Set obj = CreateObject("ComObject.ComObject");

我可以看到它已创建,那时我可以对其进行一些COM调用。


在我的工作表上,我有一堆单元格看起来像:


=Module.CallToComObject(....)

在模块内部,我有一个功能


Function CallToComObject(...)

   If obj Is Nothing Then

        CallToComObject= 0

    Else

        Dim result As Double

        result = obj.GetCalculatedValue(...)

        CallToComObject= result

    End If

End Function

我可以看到这些工作,但是在刷新几张纸之后,不再初始化obj对象,即将其设置为Nothing。


有人可以解释我应该寻找的内容吗?


神不在的星期二
浏览 1040回答 2
2回答

肥皂起泡泡

以下任何一种都会重置全局变量:使用“结束”未处理的运行时错误编辑代码关闭包含VB项目的工作簿但这不一定是详尽的清单...

牧羊人nacy

除了上述Tim的4点之外,我还建议提出第5点:单步执行代码(调试)并在到达终点之前停止。可能会替换第3点,因为编辑代码似乎不会导致全局变量丢失其值。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MySQL