我正在尝试创建一个日志文件,其中将记录对单元格的更改并带有日期戳。
日志文件需要从几个电子表格中记录。
我设法获得了记录更改的代码,并将其粘贴到每个电子表格中。
现在的问题是来自不同电子表格的记录数据在一列中,我无法说出它来自哪个电子表格。
如何调整以下代码以将记录的数据从 ABC 列移动到 EFG ?
此外,如何添加特定单元格的记录让我们说 D4?
我对这些东西完全陌生,所以请放轻松。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim strAddress As String
Dim val
Dim dtmTime As Date
Dim Rw As Long
If Intersect(Target, Range("A1:M1000")) Is Nothing Then Exit Sub
'change range to suit
dtmTime = Now()
val = Target.Value
strAddress = Target.Address
Rw = Sheets("Log Sheet").Range("A" & Rows.Count).End(xlUp).Row + 1
With Sheets("Log Sheet")
.Cells(Rw, 1) = strAddress
.Cells(Rw, 2) = val
.Cells(Rw, 3) = dtmTime
End With
结束子
最佳答案
将日志列从 ABC 更改为 EFG
要将 ABC 更改为 EFG,请在下面的评论中进行更改
Private Sub Worksheet_Change(ByVal Target As Range)
Dim strAddress As String
Dim val
Dim dtmTime As Date
Dim Rw As Long
If Intersect(Target, Range("A1:M1000")) Is Nothing Then Exit Sub
'change range to suit
dtmTime = Now()
val = Target.Value
strAddress = Target.Address
Rw = Sheets("Log Sheet").Range("A" & Rows.Count).End(xlUp).Row + 1
With Sheets("Log Sheet")
.Cells(Rw, 1) = strAddress --//Change 1 to 5 for E
.Cells(Rw, 2) = val --//Change 2 to 6 for F
.Cells(Rw, 3) = dtmTime --//Change 3 to 7 for G
End With
End Sub
注意:上面的代码只是从您的问题中复制的,除了这三行的注释。添加已更改的工作表的名称
要添加工作表源(例如 H 列),您可以在
End With
之前立即插入以下行: .Cells(Rw, 4) = ActiveSheet.Name --//Change 4 to 8 for H
记录特定单元格已更改要仅在 D4 更改时记录,请更改您的
Range("A1:M1000)"
至Range("D4)"
关于excel - Excel 中的日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63612480/