重置VBA代码模块时的事件?

时间:2013-07-26 15:49:52

标签: excel vba excel-vba activex activexobject

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

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

然后将这个新应用程序与其他数据等结合使用。基于用户在前端使用提供的ActiveX控件进行的操作。

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

然而,这不是用户形式,并且无法检测“项目被重置”的时间(据我所知),因此我创建的隐藏的Excel应用程序仍保持打开但没有任何指向它。

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

那么,有没有办法让我检测VBA何时即将“停止项目”,因为用户表单有“终止”,所以我可以删除未使用的东西并重置电子表格中的元素?< / p>

谢谢!

1 个答案:

答案 0 :(得分:0)

我发现没有相应的事件来抓住这个。

处理此问题的最佳方法是创建一个隐藏的userform对象,该对象将“保留”我定义的所有全局变量和对象。然后我可以实现一个 UserForm_Deactivate 事件来捕获表单何时退出并在我自己之后清理。