ich habe ein Macro, das von der Workbook_Open aufgerufen wird. Ich löse ein Problem mit dem SOLVER und will die Datei schliessen und Excel beenden.
Das Schliessen funktioniert,
wenn das Makro bei geöffneter Datei von Hand gestartet wird
wenn Excel gestartet ist und die Datei per Doppelklick gestartet wird
Das Schliessen funktioniert NICHT,
wenn die Datei per Doppelklick gestartet wird und selber Excel öffnet (so muss es leider funktionieren)
Ich speichere alle Daten, schliesse alle Workbooks bis auf das, in dem das Makro steht, setze alle mir bekannten Objekte auf nothing. Das Makro läuft einfach drüber, wie als ob nichts wäre. Err.Number ergibt 0.
Private Sub Workbook_Open()
Call JobExec.RunJob
End Sub
Modul JobExec:
Option Explizit
Sub RunJob
...
Solver.Auto_open ' notwendig, damit SolverOptions keine Fehlermeldung im Batch-Run erzeugt
...
Application.DisplayAlerts = False
' Bewusst kein workbook.close vorher
Application.Quit
End Sub
Hinweise im Netz auf noch offene Objekte konnte ich nicht richtig umsetzen. Application.UsedObjects gibt 58 zurück, aber Versuche mit unload oder set = nothing in einer for each-Schleife haben nicht funktioniert. Oder gibt es einen Befehl mit dem man Excel einfach zuverlässig abschiesst?
Dankbar für jeden Tipp,
Martin