excel.exe不';t退出(vb.net)
我可以看到在任务管理器中打开的应用程序。。。为什么?您需要先释放对象,它肯定会退出Excel.exeexcel.exe不';t退出(vb.net),vb.net,excel,Vb.net,Excel,我可以看到在任务管理器中打开的应用程序。。。为什么?您需要先释放对象,它肯定会退出Excel.exe Dim oXL As Object Dim oWB As Object Dim oSheet As Object ' Start Excel and get Application object. oXL = CreateObject("Excel.Application") oXL.Visible
Dim oXL As Object
Dim oWB As Object
Dim oSheet As Object
' Start Excel and get Application object.
oXL = CreateObject("Excel.Application")
oXL.Visible = True
' Get a new workbook.
oWB = oXL.Workbooks.Add
oSheet = oWB.ActiveSheet
.........
oXL.Quit()
oWB = Nothing
oXL = Nothing
oSheet = Nothing
你需要照@Afnan Makhdoom说的去做,但不仅仅是照他说的去做,你还需要给他打电话
oSheet.Close(False)
oXL.Quit()
releaseObject(oXL)
releaseObject(oWB)
releaseObject(oSheet)
oWB = Nothing
oXL = Nothing
oSheet = Nothing
这将清理正在使用的对象,并将其从任务管理器中删除。仅释放对象不会将其从任务管理器中删除,您需要强制垃圾收集器。尝试此操作,以便在您打开excel文件后,它将删除任务管理器进程:
GC.Collect()
你可以使用GC.Collect,但@MrCoDeXeR在说“那不管用”之前,请确保你完全理解别人的答案,批评别人不是一件好事,你发布了你的答案,对你有好处,不要在别人的答案上让步,也要尊重别人!供您参考,它是有效的-不,没有GC,它不会从任务管理器中发布。收集。。。这是一个很好的例子,你可能会发现很有意思,适合他的确切问题。。。我在帖子里也提到过你,但我觉得有必要批评一下。这里没有感情,只有建设性的批评。等等,这是我用同样的问题回答的另一个问题。。。
Dim proc As System.Diagnostics.Process
For Each proc In System.Diagnostics.Process.GetProcessesByName("EXCEL")
proc.Kill()
Next