Запис відстежених змін у excel


-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

Ви можете спробувати цей код 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

Примітка: Змініть ім'я стовпця відповідно до ваших потреб.

Я сподіваюся, що це допоможе тобі.


Дякую за допомогу, я помістив це у тестовий аркуш, тому я можу розробити, як його застосувати, використовуючи комірки A16: E16 як комірки, з яких я хочу відстежувати та записувати зміни даних. Але VB повертає "помилка часу запуску 9: сценарій поза діапазоном", і коли я натискаю "налагодження", він виділяє три рядки перед "Завершити", починаючи з рядка, що починається з: Таблиці ("ChangeLog") ..... ..........
користувач876274

Вам потрібно Вставити аркуш і назвати його ChangeLog або Перейменувати будь-який існуючий Аркуш. І замініть діапазон ("A: A, C: C") діапазоном ("A16: E16"). Припустимо, ви хочете використовувати цілі від A до E, а потім використовувати діапазон ("A: A, E: E"),, якщо ви хочете перевірити лише рядок 16, то діапазон ("16:16"). Пам'ятайте, я завжди перевіряв, що коли-небудь я публікую як відповідь, і цей код також був перевіреним і працював належним чином.
Rajesh S
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.