gpt4 book ai didi

vba - Excel VBA中全局变量的生命周期是多少?

转载 作者:行者123 更新时间:2023-12-01 17:21:56 29 4
gpt4 key购买 nike

我有一个工作簿,它声明了一个用于保存 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。

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

最佳答案

其中任何一个都会重置全局变量:

  1. 使用“结束”
  2. 未处理的运行时错误
  3. 编辑代码
  4. 关闭包含 VB 项目的工作簿

但这不一定是详尽的列表......

关于vba - Excel VBA中全局变量的生命周期是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7041138/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com