-1

У меня есть ряд электронных таблиц, рассчитывающих процентное увеличение производительности для разных предметных областей.

Существует ли способ записи и отслеживания данных при их изменении, новые данные перезаписывают предыдущие данные, и я хотел бы, чтобы все изменения данных были записаны на другом листе, чтобы эти изменения можно было использовать для автоматического обновления диаграммы отслеживания.

Данные, которые я хочу отслеживать и записывать изменения, находятся в ячейках 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 ответ1

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

Примечание: измените имя столбца в соответствии с вашими потребностями.

Я надеюсь, что это поможет вам.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .