1

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

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

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

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

4

1 回答 1

4

好吧,在一些激进的评论和取消评论之后,我的错误似乎与 VBA 的析构函数 Class_Terminate() 有关。

我在“WellCollection”类中有一个“WellReader”类,所以当我终止我的 WellCollection 类时,它会连同它一起破坏 WellReader。但是,如果我为这两个类定义了 Class_Terminate(),它会将我的程序抛出一个循环(字面意思)。简单地定义函数会导致错误,即使其中没​​有代码。

(这是一个相关的 StackOverflow 帖子,对这个问题有一定的了解。)

所以,虽然我不确定为什么这两个析构函数都不起作用,但现在我将不使用一个。感谢大家的帮助!

于 2013-01-17T19:09:09.977 回答