/ / Schließen Öffnen Sie die Excel-Instanz - vbscript, excel.application

Schließen Sie die geöffnete Excel-Instanz - vbscript, excel.application

Könnte mir bitte jemand mitteilen, ob das folgende einfache VBScript korrekt ist? Es soll Excel schließen, nachdem andere Prozesse ausgeführt wurden (und Excel offen gelassen haben), aber es funktioniert nicht.

Set MyApp = CreateObject("Excel.Application")
MyApp.Quit

Antworten:

3 für die Antwort № 1

CreateObject Erzeugt ein neues Objekt. Wenn ich Ihre Frage richtig verstanden habe, möchten Sie sie an bereits laufende (verwaiste) Excel-Prozesse anhängen, um sie zu beenden. Sie können das mit machen GetObject:

On Error Resume Next
Do
Set xl = GetObject(, "Excel.Application")
status = Err.Number
If status = 0 Then
For Each wb in xl.Workbooks
wb.Close False  "discard changes in open workbooks
Next
xl.Quit
ElseIf status <> 429 Then
WScript.Echo Err.Number & ": " & Err.Description
WScript.Quit 1
End If
Until status = 429
On Error Goto 0

Beachten Sie, dass dadurch versucht wird, alle laufenden Excel-Instanzen zu schließen und alle Änderungen in geöffneten Arbeitsmappen zu verwerfen. Wenn Sie Änderungen in geöffneten Arbeitsmappen speichern möchten, ändern Sie das Argument von Close Methode zu True. Wenn Sie über Excel-Instanzen verfügen, die weiterhin ausgeführt werden sollen, müssen Sie Code hinzufügen, um sie vom Schließen auszuschließen.

Beachten Sie auch, dass dies nicht dazu führt, dass nicht reagierende Instanzen gewaltsam beendet werden. Dafür müssten Sie den Prozess beenden:

Set wmi = GetObject("winmgmts://root/cimv2")
For Each xl In wmi.ExecQuery("SELECT * FROM Win32_Process WHERE Name = "excel.exe"")
xl.Terminate
Next

0 für die Antwort № 2

Versuchen Sie es bitte.

ThisWorkbook.Saved = True
Application.Quit

0 für die Antwort № 3

CreateObject erstellt ein COM-Objekt, also dein

Set MyApp = CreateObject("Excel.Application")

startet einen neuen Excel-Prozess. Benutzen GetObject "ein vorhandenes Objekt mit der angegebenen ProgID abrufen". Sehen Dies für Theorie und Praxis.