Excel 不覆盖以前时间戳的时间戳日志
我需要创建一个单元格更改的时间戳日志。例如,如果单元格D1的值与前一个值不同,A列将记录时间戳Excel 不覆盖以前时间戳的时间戳日志,excel,vba,timestamp,Excel,Vba,Timestamp,我需要创建一个单元格更改的时间戳日志。例如,如果单元格D1的值与前一个值不同,A列将记录时间戳 private sub worksheet_change(ByVal Target as Range) if Range("d1") then applicaton.enableevents = false range("a1") = DATE + Time applicaton.enableevents = true end if End sub 这就是我到目前为止所做的,它记录对D1的更改,
private sub worksheet_change(ByVal Target as Range)
if Range("d1") then
applicaton.enableevents = false
range("a1") = DATE + Time
applicaton.enableevents = true
end if
End sub
这就是我到目前为止所做的,它记录对D1的更改,但是它没有用时间戳填充A列的下一行,它只是用当前时间戳修改单元格A1。我需要用一个新的时间戳条目来跟踪更改。每当单元格D1发生变化时,我需要它用时间戳填充整个列A 这已经是一个很好的起点。现在,您只需确保修改时间附加在A列中注册的最后一个日志的末尾。我认为替换这一行:
range("a1") = DATE + Time
用这条线
Cells(Rows.Count, 1).End(xlUp).offset(1,0) = "D1 Modified on " & DateSerial(Year(Now()),Month(Now()),Day(Now())) & " at " & TimeSerial(Hour(Now()), Minute(Now()), Second(Now()))
你应该做你想要的事 解决方案:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$1" Then
Application.EnableEvents = False
Dim LastRow As Long, ws As Worksheet
Set ws = Target.Worksheet
LastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
ws.Range(ws.Cells(LastRow + 1, 1), ws.Cells(LastRow + 1, 1)).Value = DateValue(Now()) & ", " & TimeValue(Now())
Application.EnableEvents = True
End If
End Sub
注: