我有一个工作簿,声明了一个用于保存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。
有人可以解释一下我应该寻找什么导致这种情况吗?
答案 0 :(得分:20)
其中任何一个都会重置全局变量:
虽然这不一定是详尽的清单......
答案 1 :(得分:8)
除了Tim的4之外,我还建议第5点:逐步完成代码(调试)并在到达结束之前停止。可能这可能会取代第3点,因为编辑代码似乎不会导致全局变量丢失它们的值。