2

我的应用程序是另一个应用程序的插件 (DLL)。从我的应用程序中,我启动 Excel,然后只需打开一个工作簿并保存它。

Dim oExcel As Object = CreateObject("Excel.Application")
oExcel.Visible = False
oExcel.DisplayAlerts = False
Dim oWorkBook As Object = oExcel.Workbooks.Open(excelFileName)
oWorkBook.Save()
oWorkBook.Close(True)
oExcel.Quit()
oWorkBook = Nothing
oExcel = Nothing

问题是我创建的 Excel 实例在主应用程序(同样我的应用程序是另一个应用程序的插件)关闭之前不会关闭。

除了杀死进程,我还能做些什么吗?我尝试了 System.Runtime.InteropServices.Marshal.ReleaseComObject(obj) 并调用垃圾收集器无济于事。

TIA。

4

1 回答 1

0

这是 Excel.exe 一直运行的一个常见问题,我建议您分离并释放与其连接的所有变量/对象,然后将它们设置为空,最后使用 gc.collect。请注意,您必须分离您在整个代码中使用的所有变量/对象、范围、电子表格、工作簿、单元格。然后 excel.exe 将关闭:)

于 2013-10-13T10:24:07.870 回答