我正在开发一个包含大量ActiveX元素的Excel工作表。 我没有使用UserForm,并且在按下activeX按钮时加载了所有数据。
此时会创建一个隐藏的Excel应用程序,其中执行各种操作。
然后将这个新应用程序与其他数据等结合使用。基于用户在前端使用提供的ActiveX控件进行的操作。
我的问题出现在“重置项目”时,所有对象都从内存和所有内容中释放出来。 如果这是一个用户表单,我会实现“终止”事件,我将关闭隐藏的所有工作簿,基本上我自己清理。
然而,这不是用户形式,并且无法检测“项目被重置”的时间(据我所知),因此我创建的隐藏的Excel应用程序仍保持打开但没有任何指向它。
如果我去任务管理器,我会看到各种“EXCEL.EXE”,其数量基本上是我运行该工具的次数。
那么,有没有办法让我检测VBA何时即将“停止项目”,因为用户表单有“终止”,所以我可以删除未使用的东西并重置电子表格中的元素?< / p>
谢谢!
答案 0 :(得分:0)
我发现没有相应的事件来抓住这个。
处理此问题的最佳方法是创建一个隐藏的userform对象,该对象将“保留”我定义的所有全局变量和对象。然后我可以实现一个 UserForm_Deactivate 事件来捕获表单何时退出并在我自己之后清理。