Excel VBA 项目未关闭
本文关键字:项目 VBA Excel | 更新日期: 2023-09-27 18:34:57
我有一个COM插件,我在其中处理excel事件。我单击Alt F11
以查看与 excel 相关的 VBA 项目。但是,当我关闭工作簿时,项目资源管理器中的Excel VBA项目也没有关闭。
当我的 COM 插件未安装时,它会正常关闭。这是怎么回事,我应该做些什么不同的事情?
问题出在内存中保留的工作簿对象。通过清除工作簿停用事件中的对象,当我关闭工作簿时,VBA 项目将关闭。
看到这个:http://social.msdn.microsoft.com/Forums/en-US/vsto/thread/377fbebc-021d-4e48-aaef-d4658cc221b3
谢谢
我在 COM-Add-In (C#/VSTO( 中遇到了类似的问题:
- 当工作簿关闭时,您必须释放代码中的所有工作簿引用,并将其设置为 null。
- 如果在内部存储对工作簿的引用,请始终使用弱引用让垃圾回收器执行其工作。
就我而言,我在自定义任务窗格中有一个所有工作簿的Windows.Forms.Tree。引用的工作簿对象存储在 TreeNode.Tag 中。关闭工作簿后,树由事件更新,但此时我已经生成了我称之为 VBA 工作簿的"幽灵"。我通过将 TreeNode 标签中的工作簿对象替换为 Workbook.FullName-String(稍后引用它们(来解决此问题。
希望对你有帮助,约尔格