Application_startup和application_exit VBA

时间:2017-10-04 14:55:29

标签: .net vba visual-studio excel-vba excel

我在关闭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表也会被关闭)

0 个答案:

没有答案