Wie schiebe ich eine Operation auf den Excel-Rückgängig-Stapel?

8

Ich erstelle ein VSTO-Excel-Add-In, das die Werte mehrerer Zellen manipuliert. Ich möchte dem Benutzer erlauben, die Änderungen rückgängig zu machen, die vom Add-In über die Standard-Excel-Funktionen erstellt wurden. Ich bevorzuge die Verwendung von VBA.

Ist das möglich? Wenn ja, wie?

Noch eine Frage: Ist es möglich, den bestehenden Undo / Redo-Stack zu untersuchen?

    
Richard Pianka 10.04.2013, 15:03
quelle

3 Antworten

4

Sie haben nicht erwähnt, welche Version der Excel / .NET / VSTO-Laufzeit Sie verwenden möchten, aber das spielt keine Rolle:]
Benutzerdefiniertes Rückgängigmachen kann nicht ohne VBA-Injektion ausgeführt werden. In diesem Fall müssen Sie eine Methode zum Rückgängigmachen von Aktionen rückgängig machen, indem Sie eine Kompensation (z. B. umgekehrte Operationen) oder einen gespeicherten Status wiederherstellen.

    
mousio 22.04.2013 22:14
quelle
3

Ich weiß, dass Sie VBA vermeiden wollen, aber wie andere bereits erwähnt haben, ist es nicht wirklich möglich, das Undo zu erhalten.

Hier ist ein VBA-Beispiel, das die vorhandene Auswahl als benutzerdefinierten Datentyp beibehält, damit sie später rückgängig gemacht werden kann.

%Vor%     
David Zemens 24.04.2013 03:24
quelle
0

Sie können Operationen zum Stapel hinzufügen, indem Sie Folgendes verwenden:

%Vor%

Dabei ist Text der Text, der mit dem Befehl Rückgängig angezeigt wird (Menü Bearbeiten) und Prozedurname ist der Name eines Ihrer Subs. Sie können Operationen auch programmatisch rückgängig machen, indem Sie Folgendes verwenden:

%Vor%

Ich glaube nicht, dass es möglich ist, auf bestehende Rückgängig-Operationen zuzugreifen; zumindest habe ich noch nie von denen gehört. Es kann eine Bibliothek geben, auf die Sie online zugreifen können, um dies zu ermöglichen.

Hoffe, das hilft.

    
nubasic 11.04.2013 19:26
quelle

Tags und Links