【发布时间】:2017-07-10 04:18:42
【问题描述】:
一旦按钮执行结束,任务管理器中的 Excel 实例 (excel.exe) 不会被杀死。
Private Sub Extract_Click(sender As Object, e As EventArgs) Handles Extract.Click
Dim xlApp As New Excel.Application
Dim wbXLsource As Excel.Workbook
Dim wbXLtarget As Excel.Workbook
Dim shXLsource As Excel.Worksheet
Dim shXLtarget As Excel.Worksheet
Dim datestart As Date = Date.Now
wbXLsource = xlApp.Workbooks.Open(xlSourcePath)
wbXLtarget = xlApp.Workbooks.Open(xlTargetPath)
Dim dateEnd As Date = Date.Now
End_Excel_App(datestart, dateEnd)
End Sub
Private Sub End_Excel_App(datestart As Date, dateEnd As Date)
Dim xlp() As Process = Process.GetProcessesByName("EXCEL")
For Each Process As Process In xlp
If Process.StartTime >= datestart And Process.StartTime <= dateEnd Then
Process.Kill()
Exit For
End If
Next
End Sub
我也尝试使用垃圾收集器概念,但只有在关闭应用程序后,excel 实例才会被杀死。按钮执行结束后,我需要关闭 excel 实例(excel.exe)
【问题讨论】:
-
如果内存正常,Excel 工作簿上有一个
close方法可以绕过这个骇客,并在被调用时正确关闭文档(和 excel 实例)。 -
您在获取开始时间之前启动应用程序......日期时间比您想象的要精细得多。但正如@user2366842 所说.. 有一种方法可以正确地做到这一点。