excel - Excel 中的日志文件

标签 excel vba excel-formula

我正在尝试创建一个日志文件,其中将记录对单元格的更改并带有日期戳。
日志文件需要从几个电子表格中记录。
我设法获得了记录更改的代码,并将其粘贴到每个电子表格中。
现在的问题是来自不同电子表格的记录数据在一列中,我无法说出它来自哪个电子表格。
如何调整以下代码以将记录的数据从 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/

相关文章:

Excel自定义数字格式,具有三个条件

r - 使用 R(或者 Excel)组合数据——循环匹配刺激

php - 如何从 laravel excel maatwebsite 的子表中调用单元格值?

Excel VBA 列出键绑定(bind)(OnKey ?)

excel - 如何从列分隔的数据集转换为逗号分隔的数据集?

java - 我必须使用 jexcel 使用 java 中的列值对 xls 工作表行进行排序

VBA 数据透视表 折叠所有字段

excel - 有没有办法根据条件初始化公共(public)数组?

vba - 转置大型数据集

excel - 在 Excel 中计算唯一值