用于更新"更改日期"的Excel宏使Excel崩溃

Mat*_*der 1 excel vba excel-vba

我有一个文件,其中有几个表格,其中包含"Last change:"字段.如果对该表进行任何更改,该字段应更新为当前日期.

我实现了一个宏,它做了它应该做的,但不幸的是它禁用了"反向"(Strg + Z)功能,这是非常烦人的.因此,我编辑了宏,以便反向功能再次起作用.我的宏现在看起来像这样:

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
Run Code Online (Sandbox Code Playgroud)

当我应用此宏时,Excel会在我对文档进行更改时崩溃.我的代码中有无效的东西吗?我真的很想知道,因为没有错误消息或错误的行为,只有应用程序崩溃.每次都会可靠地发生此崩溃.

谢谢你的帮助!

bre*_*tdj 5

你的事件可能会在无限循环中调用自己.尝试禁用事件以停止代码在此行上重新调用自身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
Run Code Online (Sandbox Code Playgroud)