Страницы: 1
RSS
Макрос отмены поседнего действия пользователя
 
Спасибо еще раз The_Prist, который помог мне с просьбой, но решил я немного доработать макрос. Все получилось, кроме отмены - не работает никак. Смысл, чтобы отменялось последнее действие пользователя.
Прошу, посмотрите, подскажите, что тут не так

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Call Create_popup
Cancel = True
End Sub
Sub Create_popup()
Remove_Popup
With Application.CommandBars.Add(Name:="MyPopup", Position:=msoBarPopup, Temporary:=True)
With .Controls.Add
.Caption = "Добавить строку"
.On Action = "Add_R"
.FaceId = 194
End With
With .Controls.Add
.Caption = "Удалить строку"
.On Action = "Remove_R"
.FaceId = 478
End With
With .Controls.Add
.Caption = "Отменить"
.On Action = "Undo_last"
.FaceId = 37
End With
.ShowPopup
End With
End Sub

Sub Remove_Popup()
On Error Resume Next
Application.CommandBars("MyPopup"  ;)  .Delete
End Sub

Sub Add_R()

ActiveSheet.Unprotect 123
Selection.Ins ert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
ActiveSheet.Protect 123

End Sub

Sub Remove_R()

ActiveSheet.Unprotect 123
Sele ction.Delete Shift:=xlUp
ActiveSheet.Protect 123

End Sub

Sub Undo_last()

ActiveSheet.Unprotect 123
With Application
.EnableEvents = False
.Undo
End With
ActiveSheet.Protect 123

End Sub
 
Прочитайте статью: Как отменить действия макроса
и все станет понятно.

P.S. И подумайте над названием темы - сейчас оно ни о чем не говорит. В названии темы просите посмотреть, а внутри - о том, что не получается отменить действия макроса.
И еще при создании сообщений присмотритесь к строке кнопок над полем с тестом(там, где смайлики). Там есть кнопочка <...> - с её помощью необходимо оформлять листинги кодов.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
В очередной раз огромное спасибо.
Страницы: 1
Наверх