为什么我的 Excel VBA 代码在关闭表单后仍然运行?

问题描述 投票:0回答:2

我正在使用我编写的几个自定义类创建一个相当广泛的 Excel 用户表单。目前,事情似乎按预期进行,但有时当我关闭表单时,进程似乎仍在后台运行。

我知道这一点是因为关闭所述表单后,有时CPU核心会保持满负荷运行,当我单击电子表格中的单元格时,公式栏中显示的值会快速闪烁,就好像电子表格被反复刷新一样。

我尝试在每个类(或至少所有大类)的 Class_Terminate 函数中插入中断和调试语句,它们似乎都可以整齐地解构。此外,当我在代码中断处休息时,一切都会按预期停止。

那么,什么给出了呢?有没有更好的方法来隔离问题?关闭用户表单后,如何找出仍在运行的内容?

vba excel excel-2007
2个回答
4
投票

嗯,经过一些积极的注释和取消注释后,我的错误似乎与 VBA 的析构函数 Class_Terminate() 有关。

我在“WellCollection”类中有一个“WellReader”类,因此当我终止 WellCollection 类时,它会随之破坏 WellReader。但是,如果我为这两个类定义了 Class_Terminate(),它会将我的程序放入循环(字面意思)。简单地“定义”函数就会导致错误,即使其中没有代码。 (这里有

相关的 StackOverflow 帖子

,它对这个问题提供了一定的启发。) 因此,虽然我不确定为什么两个析构函数都不起作用,但现在我将不用一个析构函数。谢谢大家的帮助!


0
投票

© www.soinside.com 2019 - 2024. All rights reserved.