cho*_*ida 18 excel vba global-variables excel-vba
我有一个工作簿,声明一个旨在保存COM对象的全局变量.
Global obj As Object
Run Code Online (Sandbox Code Playgroud)
我在Workbook_Open事件中初始化它,如下所示:
Set obj = CreateObject("ComObject.ComObject");
Run Code Online (Sandbox Code Playgroud)
我可以看到它已创建,那时我可以对它进行一些COM调用.
在我的工作表上,我有一堆看起来像的单元格:
=Module.CallToComObject(....)
Run Code Online (Sandbox Code Playgroud)
在模块内部,我有一个功能
Function CallToComObject(...)
If obj Is Nothing Then
CallToComObject= 0
Else
Dim result As Double
result = obj.GetCalculatedValue(...)
CallToComObject= result
End If
End Function
Run Code Online (Sandbox Code Playgroud)
我可以看到这些工作有点,但在几张表刷新后,obj对象不再被初始化,即它被设置为Nothing.
有人可以解释一下我应该寻找什么导致这种情况吗?
Tim*_*ams 21
其中任何一个都将重置全局变量:
虽然这不一定是详尽的清单......