0

我正在开发一个包含大量 ActiveX 元素的 Excel 工作表。我没有使用用户窗体,并且在按下 activeX 按钮时加载了所有数据。

此时会创建一个隐藏的 excel 应用程序,在该应用程序中执行各种操作。

然后根据用户在前端使用提供的 ActiveX 控件所做的操作,将这个新应用程序与其他数据等结合起来。

我的问题出现在“项目被重置”时,所有对象都从内存和所有内容中释放。如果这是一个用户表单,我将实施“终止时”事件,在该事件中我将关闭隐藏的所有我使用过的工作簿,基本上在我自己之后清理。

然而,这不是一个用户表单,并且没有办法检测“项目被重置”(据我所知),所以我创建的隐藏的 excel 应用程序保持打开但没有任何指向它。

如果我去任务管理器,我会看到各种“EXCEL.EXE”,这些数量基本上就是我运行该工具的次数。

那么,有什么方法可以让我检测 VBA 何时将“停止项目”,就像用户表单“终止”一样,这样我就可以删除未使用的内容并重置电子表格中的元素?

谢谢!

4

1 回答 1

0

我发现没有相应的事件可以捕捉到这一点。

处理这个问题的最好方法是创建一个隐藏的用户窗体对象,它将“保存”我定义的所有全局变量和对象。然后我可以实现一个UserForm_Deactivate事件来捕捉表​​单何时退出并在我自己之后进行清理。

于 2013-07-30T11:20:52.993 回答