【发布时间】:2012-11-10 01:23:03
【问题描述】:
我正在开发一个在前端使用 Excel 并通过 COM 上的第 3 方 API 访问远程数据的应用程序。该应用程序直接在 Excel VBA 中编码(即 Excel 没有 COM 自动化。)有时,在运行我的应用程序后,用户退出时 Excel 不会退出,从而创建一个消耗约 50% CPU 的僵尸 Excel。
我已经在 SO 上阅读了现有的“Excel 不会退出”答案——它们似乎都与 Excel 的互操作/COM 自动化有关。关于在这种情况下如何确保 Excel 退出的任何建议?
【问题讨论】:
-
你能发布你用来退出应用程序的代码吗?如果您通过 VBA 退出,您应该能够确保 excel 正确终止。如果没有您的代码,我很难猜出问题可能是什么。
-
可能存在对 Excel 的 Application 对象、工作簿或电子表格等的远程引用。
-
我没有在我的代码中退出应用程序。当用户通过关闭最后打开的工作簿或通过菜单使用退出手动退出 Excel 时,Excel 似乎退出,但有时会留下僵尸实例运行。在这种情况下,当用户下次打开 excel 时,将有两个实例在运行,每个实例都消耗约 50% 的 CPU。僵尸 excel 显示在 Windows 任务管理器的进程列表中,但不在应用程序列表中,并一直存在,直到它被强制退出。
标签: com excel excel-2007 vba