Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
excel.exe不';t退出(vb.net)_Vb.net_Excel - Fatal编程技术网

excel.exe不';t退出(vb.net)

excel.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

我可以看到在任务管理器中打开的应用程序。。。为什么?

您需要先释放对象,它肯定会退出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 = 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