我有一系列电子表格,用于计算不同学科领域的绩效增长百分比。
有没有一种方法可以记录和跟踪数据的变化,新的数据会覆盖以前的数据,并且我希望所有的数据变化都记录在不同的表上,以便这些变化可用于自动更新跟踪图表。
我想要跟踪和记录变化的数据位于单元格 D16 -P16 中。
D33 至 P33
D52至P52
我在这个论坛的其他地方找到了一个 VBA 代码,听起来应该可以工作,但它是针对列中的数据而不是行中的数据,作为这方面的新手,我真的不知道如何调整它:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Integer
Dim c As Integer
Dim arr(1 To 1, 1 To 12)
If Not Intersect(Target, Range("A1:G12")) Is Nothing Then
r = Target.Row
For c = 1 To 12
arr(1, c) = Cells(r, c).Value
Next
With shtLog
.Range(.Cells(.UsedRange.Rows.Count + 1, 1), .Cells(.UsedRange.Rows.Count + 1, 12)) = arr
End With
End If
End Sub
答案1
您可以尝试此 VBA 代码,它将有助于记录特定工作表中的更改。
Dim PreviousValue
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A:A , C:C")) Is Nothing Then
Sheets("ChangeLog").Cells(65000, 1).End(xlUp).Offset(1, 0).Value = _
Application.UserName & " Chang in cell " & Target.Address _
& " From " & PreviousValue & " To " & Target.Value
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
PreviousValue = Target.Value
End Sub
注意:根据您的需要更改列名称。
我确实希望这对你有帮助。