相关疑难解决方法(0)

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.

有人可以解释一下我应该寻找什么导致这种情况吗?

excel vba global-variables excel-vba

18
推荐指数
2
解决办法
9335
查看次数

VBA中公共变量的替代方案

我有几个模块引用的公共变量.我知道如果你调试或点击停止变量被清除.我一直把这些变量写到电子表格中,所以如果它们被清除,我会把它们弄清楚,但这很麻烦.我宁愿让它全部存储它代码.是否有任何替代公共变量永远不会被清除?

excel vba excel-vba

5
推荐指数
2
解决办法
1780
查看次数

标签 统计

excel ×2

excel-vba ×2

vba ×2

global-variables ×1