Так что в настоящее время я делаю финансовый шаблон в Excel для нашей компании (которая до сих пор использует Excel 2010). Как вы, ребята, наверняка знаете, вы можете изменить одну и ту же ячейку на нескольких листах, выбрав несколько листов. Это удобная функция, но она может действительно испортить вашу книгу, если вы сделаете это случайно.
Поэтому я пытаюсь реализовать функцию, которая предупреждает пользователя, который вносит изменения, когда выбрано несколько листов, после чего следует отменить. Он отлично работает, когда вы меняете ячейку или когда вы меняете ячейку перетаскиванием, но не работает, когда вы копируете и вставляете ячейку. Когда я делаю это, я получаю сообщение об ошибке (в переводе с голландского) «Ошибка 1004: сбой метода отмены объектного приложения». Что я делаю не так?
Ошибка:
Мой код:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Sh.Name = Application.ActiveSheet.Name Then
If ActiveWindow.SelectedSheets.Count > 1 Then
MsgBox "WAARSCHUWING: Meerdere sheets geselecteerd! Veranderingen ongedaan gemaakt"
Application.ActiveSheet.Unprotect
UndoLastAction
End If
End If
End Sub
Sub UndoLastAction()
With Application
.EnableEvents = False
.Undo
.EnableEvents = True
End With
End Sub