Excel an beliebiger Stelle beim Ausführen eines Makros schließen und erneut starten?
Angenommen, es gibt einen Marcro example_code
in einer Excel 2016-Datei: Diese enthält example_excel.xlsm
viel Code, erstellt jedoch keine externen Dateien (alle Berechnungen werden in durchgeführt example_excel.xlsm
.
Ich war gespannt, ob es einen Weg gibt:
- Unterbrechen Sie den laufenden Code zu einem beliebigen Zeitpunkt.
- Fügen Sie die nächste Zeile im Code manuell hinzu: Führt eine Funktion / ein Sub aus, die Folgendes ausführt:
- Speichert den vollständigen
example_excel.xlsm
Zustand (einschließlich der aktivierten und ausgewählten Tabelle und Zelle sowie der Variablen / der Umgebung zum Ausführen des Codes), - Schließen Sie es an einer beliebigen Stelle im Code und
- Öffnen Sie das Excel erneut
- Fahren Sie mit dem Code fort,
example_code
an dem Sie aufgehört haben. - Nach dem Entfernen der eingefügten Zeile, die den Excel-Status speichert,
- entweder sofort
- oder nach dem Anklicken von 1 Taste / Ausführen von 1 Makro?
Da ich einen komplexen Code habe, der in Instanzen von 2 Stunden ausgeführt wird, während mehrere programmierte Setups des "Solver" ausgeführt werden und ein bestimmter Solver-Status besprochen wird, warte ich eine Stunde, bevor dieser Status auftritt / ausgelöst wird.
Jetzt können Sie alle in diesem Status vorhandenen Parameter, Blatt- und Zellenstatus nachschlagen, in einem separaten Blatt ablegen und sie dann erneut initialisieren. Dies ermöglicht jedoch keine Flexibilität bei der Fehlersuche, wenn ein anderer Status ausgewertet werden muss, und es ist auch nicht zweckmäßig, wenn das .ie-Objekt mit einer Endlosschleife verwendet wird, z. B. ein Elternteil ein Kind mit einem Element, das dem Elternteil des Kindes angehört wieder (ich dachte, das existierte, obwohl ich nicht sicher bin).
Die schwierige Antwort lautet: Schreiben Sie den Code neu, und ändern Sie ihn so, dass er weniger komplex und aufschlussreicher wird. Dass ich dies definitiv tun muss, auch wenn dies getan wird, ist ein verallgemeinertes Werkzeug zum Speichern der Zustände während des Laufens zumindest für mich wünschenswert.
Bisherige Versuche: [in edit-wird ausführlicher.] Meine Hauptschwierigkeit besteht darin, dass ich nicht alle Parameter / Variablen durchlaufen kann, wenn die Liste der Parameter unbekannt ist.
Da das ursprüngliche Problem aus mehreren Läufen von 2 Stunden bestand, habe ich einen Code geschrieben, der automatisch alle Blätter und alle Module und Formulare aus dem aktuellen Excel in ein anderes Excel kopiert. Dies ermöglicht es, alles außer den Variablen innerhalb des Codes oder der Blatt- und Zellenaktivierung zu speichern.
Da dieser Code nicht spezifisch für eine beliebige Zeit während eines laufenden Codes gilt, noch die von Excel verwendeten Variablen kopiert, betrachte ich diesen Code als "off-topic", sofern nichts anderes verlangt wird.
Ich habe das Gefühl, dass ich nach einem sehr eingeschränkten Lösungsansatz suche. Vorschläge für die Suche nach anderen / umfassenderen Optionen zur Lösung des Problems sind daher willkommen!
0 Antworten auf die Frage
Verwandte Probleme
-
1
Was ist der beste Weg, ein Excel-Makro auf mehreren Computern gemeinsam zu nutzen?
-
2
Konvertieren Sie Excel 4.0-Makro in VBA
-
1
Gibt es trotzdem vim, dass Sonderzeichen nicht als Wörter gezählt werden?
-
2
Kann ich die Makrosicherheitseinstellung für eine bestimmte Datei mit einem Wort ignorieren?
-
3
Fixieren Sie ein (Heute) Datum in Excel
-
1
Festlegen von vertrauenswürdigen Visio 2003-Speicherorten
-
4
Excel 2007 | Entfernen Sie leere Felder aus den Pivot-Tabellen
-
2
Wie würde ein Outlook 2007-Makro zum Automatisieren des Einfügevorgangs - unformatierter Text ausseh...
-
4
Schließen Sie Excel 2007 vollständig ab, nachdem Sie ein Makro in der persönlichen Makro-Arbeitsmapp...
-
4
Öffnen Sie mehrere Instanzen von Excel ohne PERSONAL.xlsb-Sperrnachricht