【发布时间】:2021-03-01 08:23:25
【问题描述】:
我有一些代码(不是我的),用于 Excel 中的简单审计记录器,用于记录对单元格的更改,因为它们发生在名为“日志”的工作表中。它适用于所有实例,除非用户删除单元格以将其留空。在这种情况下,它什么也不记录。我不确定这是为什么。任何人都可以帮助更新代码,以便它记录用户何时删除单元格中的数据以留空?先感谢您!詹姆斯
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value <> PreviousValue Then
Sheets("log").Cells(65000, 1).End(xlUp).Offset(1, 0).Value = _
Application.UserName & " changed data in cell " & Target.Address _
& " in sheet " & ActiveSheet.Name & " from <" & PreviousValue & "> to <" & Target.Value & ">" & " at " & Time & " on " & Date
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
PreviousValue = Target.Value
End Sub
【问题讨论】:
-
是整个代码吗?我想你错过了
Public PreviousValue As String。尝试将它放在模块的开头(在任何其他宏之前)。 -
对不起,是的。一开始我有“Dim PreviousValue”。
-
不是
Dim,是Public。它必须放在任何宏之外。 -
谢谢。我删除了该行并添加了您的行。它会导致倒数第二行出现类型不匹配错误。
-
嗯,猜猜您可能曾尝试一次编辑多个单元格。我会尽快尝试。