为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

神不在的星期二 2020-02-02 14:07:17
我有一个工作簿,该工作簿声明了一个旨在容纳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 IfEnd Function我可以看到这些工作,但是在刷新几张纸之后,不再初始化obj对象,即将其设置为Nothing。有人可以解释我应该寻找的内容吗?
查看完整描述

2 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

以下任何一种都会重置全局变量:

  1. 使用“结束”

  2. 未处理的运行时错误

  3. 编辑代码

  4. 关闭包含VB项目的工作簿

但这不一定是详尽的清单...


查看完整回答
反对 回复 2020-02-02
?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

除了上述Tim的4点之外,我还建议提出第5点:单步执行代码(调试)并在到达终点之前停止。可能会替换第3点,因为编辑代码似乎不会导致全局变量丢失其值。


查看完整回答
反对 回复 2020-02-02
  • 2 回答
  • 0 关注
  • 995 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信