"Undo" - Schaltfläche Verlauf löschen nach ausführen des Makros in excel
Ich habe ein makro, das ausgelöst wird, auf die "Worksheet_SelectionChange" Veranstaltung. Das makro überprüfen Sie die Daten einer Spalte, ändert sich die Hintergrundfarbe der Zelle, wenn seine falsch.
Das problem ist, nachdem das makro ausgeführt wird, löscht es den Verlauf der änderungen (Ctrl-Z) alle Dokumente, auch die Geschichte ändert sich von anderen Zellen, die ich nicht überprüfen kann.
Wie kann ich dieses problem lösen?
Dank.
- Ich bin so ein Türkei manchmal, hier ya go: stackoverflow.com/questions/7004754/...
- Sah nur dieses: spreadsheetpage.com/index.php/tip/undoing_a_vba_subroutine
- Gibt es trotzdem, können Sie in Excel integrierten Validierung von Daten und/oder Funktionen zur Bedingten Formatierung, um die gleiche Funktionalität ohne die Verwendung eines Makros? Das scheint mir die beste Lösung zu sein, wenn Sie diesen Weg gehen.
- Ich schließe mich @Excellll Vorschlag
- Thirded Exceellll Vorschlag. Während ich normalerweise wie J Walk Tipps, ich bin nicht ein fan der Verwendung von arrays, halten vor der Daten, xl app-Einstellungen etc. Es ist viel robuster zum speichern von Information in einem versteckten Blatt
- während der Verwendung der
.OnUndo
Methode beschrieben, erlaubt das Rückgängigmachen der Aktionen der Sub selbst, der "Undo-Verlauf" ist immer noch deaktiviert. AFAIK gibt es keinen Weg vorbei. - Erwähnenswert ist, das die "undo-Verlauf" wird nur gelöscht, indem Sie das makro, wenn es tatsächlich änderungen vornimmt. Wenn Sie ok sind, verliert mit "Undo-Verlauf" manchmal, aber nicht immer, sicher sein, wickeln Sie Ihr makro in Wenn-Anweisungen, die sicherstellen, dass das Arbeitsblatt wirklich ändern muss.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie die anderen gesagt haben, es ist nicht Weg zu stoppen ein Arbeitsblatt-Wechsel-makro löschen des rückgängig-Stapel.
Als eine andere Nebenwirkung, die Sie nicht rückgängig machen können das makro entweder ohne schreiben Sie Ihre eigene Undo-routine-das kann ein riesiger Aufwand.
Hier ist zu hoffen, dass MS Veränderungen, die diese in der Zukunft.
Hatte ich dieses Problem und aufgewickelt zu erstellen, benutzerdefinierte undo-Funktion.
Es funktioniert sehr ähnlich wie die native rückgängig machen, außer für das folgende. Ich bin sicher, Sie können behandelt werden, mit ein wenig mehr Aufmerksamkeit.
1) Benutzerdefinierte undo nicht rückgängig machen, Formatierung. Nur text.
2) Benutzerdefinierte undo geht den ganzen Weg bis zum Ende des benutzerdefinierten stack. Sobald dies geschieht, wird der stack gelöscht und es nicht Knebel zwischen die letzten beiden Elemente wie in der Muttersprache, undo-Funktionalität.
2.1) nicht haben-REDO-Funktionalität.
Laden Sie eine Arbeitskopie von diesem code.
VBAProject-Layout-Screenshot
Modul UndoModule
Klasse Modul UndoStackEntry
Ebenfalls erforderlich zur Befestigung der folgenden Ereignisse auf die Excel-ARBEITSMAPPE-Objekt.
Schließlich jeder Platte, wo Sie Sie benötigen, "rückgängig", um die Arbeit sollte den folgenden code an, seine Veranstaltungen.