Excel:在一行上加上最后修改的日期

Excel: Add the date of the last modification on a row

我正在尝试使用以下 VBA 脚本将最后一次修改行的日期和时间添加到该行的特定列:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    ThisRow = Target.Row
    If Target.Row > 1 Then Range("K" & ThisRow).Value = Now()
End Sub

但它一直抛出以下错误:

Run-time error '-2147417848 (80010108)':

Method 'Value' of object 'Range' failed

谁能解释为什么会这样?

您正在通过更改 Worksheet_Change 事件中的值来创建无限循环,而没有先禁用事件。当我做类似的事情时,我得到了从 Out of stack space first 到 Method Range failed....

的一系列错误

改为这样做:

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False

    ThisRow = Target.Row
    If Target.Row > 1 Then Range("K" & ThisRow).Value = Now()

    Application.EnableEvents = True
End Sub

相关post:MS Excel crashes when vba code runs