怎样用vb关闭进程中的excel.exe阿,我用了很多方法,都不管用!
这是我的打开方式:strFile = "C:\temp-temp\GL8 fullbody data 易做图ysis worksheet.xls"
FileCopy strFile, tempFile
Set xlsApp = CreateObject("Excel.Application")
Set xlsWB = xlsApp.Workbooks().Open(tempFile)
Set xlsWS = xlsWB.Worksheets(1)
xlsWS.Activate
xlsWB.Save
这是我的关闭语句:
xlsWB.Close (True)
xlsApp.DisplayAlerts = False
xlsApp.Quit
Set xlsWS = Nothing
Set xlsWB = Nothing
Set xlsApp = Nothing
Kill tempFile
我都把用过的文件删掉了,可是缓存中还有excel.exe
下次运行的时候就会出错,手动结束这个进程后,就可以正常运行了。这是怎么回事啊?? --------------------编程问答--------------------
Sub KillExcel()
Dim objSet
Dim Item
Dim pid
Set objSet = GetObject("winmgmts:").InstancesOf("Win32_Process")
For Each Item In objSet
If Item.Name = "EXCEL.EXE" Then
pid = Item.Handle
Shell "ntsd -c q -p " & pid
End If
Next
End Sub --------------------编程问答-------------------- 按你的原意改为:
xlsApp.DisplayAlerts = False
xlsWB.Save
xlsWB.Close '这行不要也可以
xlsApp.Quit
Set xlsWS = Nothing
Set xlsWB = Nothing
Set xlsApp = Nothing
如果不行,再分析... --------------------编程问答-------------------- xlsWB.Close
xlsApp.Quit
Set xlsWS= Nothing
Set xlsWB= Nothing
Set xlsApp= Nothing
我一直是这样用的,没问题的 --------------------编程问答-------------------- 这是我的系统里常用的模块,供参考
Public Sub ExItExcel()
Dim oExcel As Object
On Error Resume Next '延迟错误捕获。
Set oExcel = GetObject(, "Excel.Application")
If Err.Number = 0 Then
ExcelWasNotRunning = False
Err.Clear
'如果发生错误则要清除 Err 对象。
ElseIf Err.Number <> 0 Then
ExcelWasNotRunning = True
Err.Clear
End If
Set oExcel = Nothing
End Sub
***********************************************************
用法:
Call ExItExcel
If ExcelWasNotRunning = False Then '若有Excel实例在运行
MsgBox "有EXCEL程序在运行或EXCEL文件在使用,请关闭后再进行打印!", vbSystemModal + vbInformation
Exit Sub
End If
--------------------编程问答-------------------- xlsbook.Save
Set xlssheet = Nothing
Set xlsbook = Nothing
xlsapp.Quit
Set xlsapp = Nothing
我是这样写的,没有问题.EXCEL 进程不会在系统中留下
补充:VB , VBA