Коллеги, добрый день.
Столкнулся со следующей проблемой, не могу понять - это "баг или фича"...
На листе есть некий макрос, который изменяет значение ячейки. Соответственно, после его применения история затирается, и приходится использовать Application.onUndo для вызова макроса, возвращающего все к исходному состоянию.
Все происходит так как запланировано, ячейка изменяет значение, при отмене вызывается макрос отмены. Отмена отрабатывает как должна, к предыдущему состоянию приводит.
Т.к. действие основного макроса может быть выполнено несколько раз, хотелось сделать отмену тоже повторяемой. Т.е. после отмены действия, заново назначить макрос revertAction на кнопку отмены. (Пример утрированный, в реальном проекте - логика при которой заново назначается revertAction проходит доп. проверки).
Но из тела revertAction установка .onUndo не происходит.
Помогите пожалуйста разобраться - так задумано, чтобы отмена работала только один раз, или я что-то неправильно делаю?
Столкнулся со следующей проблемой, не могу понять - это "баг или фича"...
На листе есть некий макрос, который изменяет значение ячейки. Соответственно, после его применения история затирается, и приходится использовать Application.onUndo для вызова макроса, возвращающего все к исходному состоянию.
| Код |
|---|
Sub makeSomeAction()
Sheets(1).Range("A1").Value = Sheets(1).Range("A1").Value + 1
Application.onUndo Text:="Revert", Procedure:="revertAction"
End Sub
Public Sub revertAction()
Sheets(1).Range("A1").Value = Sheets(1).Range("A1").Value - 1
End Sub |
Т.к. действие основного макроса может быть выполнено несколько раз, хотелось сделать отмену тоже повторяемой. Т.е. после отмены действия, заново назначить макрос revertAction на кнопку отмены. (Пример утрированный, в реальном проекте - логика при которой заново назначается revertAction проходит доп. проверки).
Но из тела revertAction установка .onUndo не происходит.
| Код |
|---|
Public Sub revertAction()
Sheets("actionSheet").Range("A1").Value = Sheets(1).Range("A1").Value - 1
' Назначение .onUndo не происходит
Application.onUndo Text:="Revert previous action", Procedure:="revertAction"
End Sub
|
Изменено: - 18.10.2017 12:04:36
In GoTo we trust