it-swarm.com.de

"Application.Quit" lässt Excel im Hintergrund laufen

Ich habe eine kleine Excel-Datei, die alle 15 Minuten von einer Planungs-App gestartet wird.

Funktionen in den Excel-Zellen lesen Daten von verschiedenen Stellen im Netzwerk und speichern sie in Zellen in dieser Excel-Datei. Das alles funktioniert einwandfrei.

VBA-Code speichert dann die Datei und führt eine Application.Quit aus.

In der Vorgängerversion von Excel hat es hervorragend funktioniert. Seit dem Upgrade auf 2016 schließt Application.Quit die "Excel-Oberfläche", aber der Task-Manager zeigt noch immer hundert "Excel.exe" an, die jeweils bis zu 40 MB Speicher belegen.

Das angehängte Bild zeigt nur fünf Excel.exe-Dateien im Task-Manager, da der Computer zu diesem Zeitpunkt nur weniger als zwei Stunden ausgeführt wurde. Aber nach 24 Stunden gibt es ungefähr 100 von ihnen. So stürzt der Computer innerhalb weniger Tage ab.

Excel.exe still running


Danke für die schnelle Hilfe. Ich bin mir nicht sicher, ob ich meine Antworten hier einfügen soll, indem ich meine ursprüngliche Frage bearbeite.

Hier ist der Code. Die eigentliche Aktualisierung der Zellenwerte erfolgt in den Zellen selbst. Es gibt ein Add-In, das Werte von einigen SPS in unserer Fabrik liest. Das alles funktioniert gut.

Private Sub Workbook_Open()
    Application.CalculateFull
    ActiveWorkbook.Save
    Application.Quit
End Sub

Wenn die Excel-Datei gestartet wird, wird sie aktualisiert und geschlossen. Dies hat viele Jahre lang funktioniert, bis wir auf 2016 aktualisiert haben. Application.Quit würde Excel vollständig verschwinden lassen. Nicht jetzt.

6
Davidfox789

Vor Excel 2016 hatte Excel die Möglichkeit, mehrere Excel-Dateien in einem einzigen Fenster zu haben.

In Excel 2016 ist es ein Fenster pro Anwendung.

Das Problem mit Ihrem Code ist, dass er eine Instanz schließt. Aufgrund der Tatsache, wie die Excel-Dateien geöffnet wurden, würde dies entweder ausreichen oder nicht. Wenn beispielsweise Excel-Dateien in derselben Instanz geöffnet würden, wäre dies völlig ausreichend.

3
Vityata

Ich bin selbst ein bisschen Amateur und mir ist klar, dass dies ein bisschen ein alter Thread ist, aber ich frage mich, ob Sie die Arbeitsmappe speichern (so wie Sie es tun), aber auch die Arbeitsmappe schließen und Excel beenden. Möglicherweise wird dadurch der Task-Manager gelöscht. Ich stelle fest, dass Sie die Arbeitsmappe speichern, sie jedoch nicht schließen, sodass sie weiterhin geöffnet bleibt. Ich bin zuvor auf ein ähnliches Problem gestoßen und ich denke, dies hat es endlich behoben.

Dies ist Code, den ich jedes Mal verwende, wenn ich Excel beenden möchte. Normalerweise habe ich 2 Bücher geöffnet, eines ist eine Vorlage (die ich nicht speichere) und das andere ist eine, die mit Daten aus der Vorlage erstellt wurde.

ActiveWorkbook.Close SaveChanges:=True
Application.Quit
ActiveWorkbook.Close SaveChanges:=False
1
Chris Murrell