用于更新“更改date”的Excelmacros使Excel崩溃

我有一个excel文件,其中我有几个表与“最后更改:”字段。 如果对该表进行了任何更改,则该字段应更新为当前date。

我实现了一个应该做的事情,但不幸的是,它禁用了非常烦人的“Reverse”(Strg + Z)函数。 因此,我编辑了这个macros,使反向function再次工作。 我的macros现在看起来像这样:

Option Explicit Public Merker Private Sub Worksheet_Change(ByVal Target As Range) If Not ThisWorkbook.ReadOnly Then Application.OnUndo "Rev. Change", "Wiederherstellen" Merker = Cells(3, 2) Cells(3, 2) = Date End If End Sub Sub Wiederherstellen() Cells(3, 2) = Merker End Sub 

当我应用这个macros时,只要对文档进行更改,Excel就会崩溃。 我的代码中有无效的东西吗? 我真的好奇,因为没有错误信息或错误的行为,但只有应用程序崩溃。 这次崩溃每次都可靠地发生。

谢谢你的帮助!

你的事件可能会在无限循环中自我调用。 尝试禁用事件以停止在此行重新调用自己的代码Cells(3, 2) = Date

 Private Sub Worksheet_Change(ByVal Target As Range) If Not ThisWorkbook.ReadOnly Then Application.EnableEvents = False Application.OnUndo "Rev. Change", "Wiederherstellen" Merker = Cells(3, 2) Cells(3, 2) = Date Application.EnableEvents = True End If End Sub