VBA-Skript zu schließen, jede Instanz von Excel, außer sich selbst

Habe ich ein Unterprogramm in mein errorhandling-Funktion, die versucht, zu schließen jeder Arbeitsmappe öffnen Sie in jeder Instanz von Excel. Sonst könnte es bleiben im Speicher, und breche meinen nächsten vbscript. Es sollte auch in der Nähe jeder Arbeitsmappe ohne speichern der änderungen.

Sub CloseAllExcel()
On Error Resume Next
    Dim ObjXL As Excel.Application
    Set ObjXL = GetObject(, "Excel.Application")
    If Not (ObjXL Is Nothing) Then
        Debug.Print "Closing XL"
        ObjXL.Application.DisplayAlerts = False
        ObjXL.Workbooks.Close
        ObjXL.Quit
        Set ObjXL = Nothing
    Else
        Debug.Print "XL not open"
    End If
End Sub

Dieser code ist nicht optimal, jedoch. Zum Beispiel kann es in der Nähe 2 Arbeitsmappen in einer Excel-Instanz, aber wenn Sie 2 Instanzen von excel, es wird nur schließen, aus 1.

Wie kann ich diese umschreiben zu schließen alle Excel ohne speichern der änderungen?

Extra Credit:

Wie dies für den Zugang als auch ohne schließen der Access-Datei, die gehostet wird das script?

Eigentlich läuft das script aus Access. Und da hat niemand beantwortet meine Frage vollständig, ich habe zu restrukturieren, die ganze Sache so, dass es nicht schließen Sie alle Instanzen von Access.

InformationsquelleAutor PowerUser | 2010-08-19

Schreibe einen Kommentar