当前位置:编程学习 > VB >>

怎样用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
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,