Я создаю приложение C#, которое необходимо взаимодействовать с электронной таблицей Excel через Office Interop. Я хотел бы получить доступ к полному столу Undo, чтобы я мог сделать серию изменений на листе, а затем, если необходимо, перевернуть их по одному. Я вижу, что объект Word Document в сборках Interop имеет UndoRecord и некоторые другие тонкости, в том числе функцию Undo. Например, я могу вызвать Microsoft.Office.Interop.Word._Document.Undo() с параметром, чтобы отменить несколько действий. С другой стороны, Excel Undo-материал выглядит намного более ограниченным. Конечно, есть Microsoft.Office.Interop.Excel._Application.Undo(), но он идет только по одному действию, и если вызываемый снова выполняет «Повторить», вместо того, чтобы идти глубже в стек.Как получить доступ к стеку отмены в Excel с C# через Office Interop?
Я нашел код онлайн, где разработчики VBA закодировали свои истории Undo для Excel, потому что это был единственный способ получить желаемую функциональность. Однако я не вижу ничего подобного для C#. Есть ли способ имитировать способ отмены Word Interop в Excel?
Как насчет действий, предпринятых пользователем? Нет ли способа открыть рабочий лист через Interop, ввести пользователя в ячейки и т. Д., А затем программно отменить его действия? – RedBrogdon
См. Мое редактирование. –