我在关闭excel进程时出现问题,我使用Application_Startup处理程序启动。
首先,我将粗略地描述我的程序: Application.xaml.vb Application_startup读取选项文件(并允许在需要时进行更改),然后在用户点击加载屏幕时继续加载巨大的Excel文件。
' Start Excel and get Application object.
XLapp = CreateObject("Excel.Application")
XLapp.Visible = False
XLwb = XLapp.Workbooks.Open(HistoryPath, [ReadOnly]:=True)
完成所有操作后,MainWindow.xaml.vb会显示,我使用My.Application.XLwb
来访问数据。当我关闭MainWindow时,处理程序使用
Environment.Exit(0)
我曾希望这会触发Application.xaml.vb中的以下子:
Public Sub Application_Exit(sender As Object, e As ExitEventArgs) Handles Me.Exit
Debug.Print("close")
XLwb.Close(SaveChanges:=False)
XLapp.Application.Quit()
Environment.Exit(0)
End Sub
然而,这不起作用。 我还尝试过以下方法:
Private Sub MainWindow_Closed(sender As Object, e As EventArgs) Handles Me.Closed
Try
My.Application.XLapp.Application.Quit()
Catch ex As Exception
End Try
Environment.Exit(0)
End Sub
但是EXCEL.EXE进程仍然存在。
关于如何做到这一点的任何想法?
PS。现在我使用How can I kill task manager processes through VBA code?删除进程,但这会不加选择地删除它们(即某些正在处理的excel表也会被关闭)