Встраивание Отмены в Excel VBA Macro

21
задан pnuts 30 January 2015 в 14:20
поделиться

3 ответа

Excel VBA имеет эти Application.OnUndo функция для обработки этого:

Public Sub DoSomething

    ... do stuff here

    Application.OnUndo "Undo something", "UnDoSomething"
End Sub

Public Sub UnDoSomething

    ... reverse the action here

End Sub
22
ответ дан 29 November 2019 в 21:21
поделиться

Моя мысль довольно проста как первая строка в Вашем макро-сохранении, копия в резервном каталоге тогда закрывает ту рабочую книгу и вновь открыла оригинал. Если Вам не нравятся результаты Вашего макроса, выполняют, тянут сохраненную рабочую книгу. Сохранить это простым а?

6
ответ дан 29 November 2019 в 21:21
поделиться

Я всегда сохраняю сразу прежде, чем выполнить мои макросы (во время тестирования, по крайней мере) тогда, если все достигает угрожающих размеров, я могу просто выйти, не сохраняя и вновь открыть его.

Выпекание его в фактический макрос, у Вас будет к в основном рекордному старое состояние всего, что изменяется (содержание ячейки, формулы, форматируя и так далее) в списке тогда имеют макрос отмены, который воспроизводит тот список в обратном порядке.

, Например, если Ваш макрос изменяет ячейку содержание C22 с "3" до "7" и форматирующий от "общего" до "числа, 2 десятичных чисел), Ваш список был бы:

C22 value  3
C22 format general

Воспроизведение этого в обратном порядке (с другим макросом) вернулось бы изменения.

у Вас мог быть целый дополнительный лист для содержания макро-информации отмены, такой как:

Step   Cell   Type    Value
----   ----   -----   -------
   1   C22    value         3
       C22    format  general
   2...

Это не интегрировалось бы очень хорошо с 'реальной' отменой, к сожалению, но я не думаю, что существует любой путь вокруг этого.

3
ответ дан 29 November 2019 в 21:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: