Страницы: 1
RSS
Как из макроса закрыть все процессы Excel?
 
Добрый день
Как из макроса закрыть все процессы Excel?  Есть несколько отдельных процессов, в каждом процессе открыто по несколько файлов. Возможно есть скрытые процессы - их тоже закрыть все и полностью очистить память
Нашел такой код, по описанию к нему код должен был решить задачу, но при запуске зависает и ничего не закрывает. Возможно код не решает моих задач, описание было на английском, поэтому возможно что-то не так понял:
Код
Sub CloseAllExcel()
    Dim xlApp As Excel.Application
    
    Do
        On Error Resume Next
        Set xlApp = GetObject(, "Excel.Application")
        If Err <> 0 Then Exit Do '-- no more Excel instant
        On Error GoTo CloseAllExcel_Error
        xlApp.DisplayAlerts = False
        xlApp.Quit
    Loop
    Set xlApp = Nothing
    Exit Sub
    
CloseAllExcel_Error:
    MsgBox Err.Number & ": " & Err.Description
End Sub
Изменено: Ливиан - 21.02.2020 13:15:34 (отредактировал)
 
Доброе время суток.
Попробуйте такой вариант
 
Код
Sub KillThemAll()
    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
    Dim f As String
    f = ThisWorkbook.Path & "\kill.bat"
    With fso.CreateTextFile(f, True)
        Dim i As Long
        For i = 1 To 10
            .Writeline "taskkill /f /im excel.exe"
        Next
        .Writeline "DEL """ & f & """"
        .Close
    End With
    Shell f, vbHide
End Sub
Изменено: МатросНаЗебре - 21.02.2020 14:39:02
 
Спасибо всем большое за помощь.
Все работает.  
Страницы: 1
Наверх