Я ищу предположительно сценарий VBA. В основном ситуация такова: у меня есть лист, который автоматически выбирает значения из API, поэтому при каждом обновлении листа значения меняются. Что я хочу сделать, это добавить новые значения из определенных ячеек в таблицу на другом листе. Поэтому, когда значения меняются, новое значение добавляется в первую пустую строку в определенном столбце. Я хотел бы отслеживать исторические данные, чтобы следить за тем, как эти значения развиваются с течением времени. Приятным бонусом было бы добавление точного времени этого конкретного обновления в другой столбец в той же строке, но я могу сделать это и вручную.

1 ответ1

1

Вы можете использовать эти макросы для отслеживания изменений в конкретном диапазоне данных.

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:B100")) Is Nothing Then
Call Master
End If
End Sub

Замечания:

  • Этот код запускает макрос (мастер), когда любое значение ячейки изменяется в диапазоне.

Введите ниже написанный код VBA в качестве стандартного модуля.

  • Этот код будет копировать каждое новое / измененное значение из диапазона A1:B100 в мастер -лист нового листа без MasterSheet старых записей.

    Sub Master()
    
    Dim sourceSheet As Worksheet
    Dim sourceRange As Range
    Dim sourceRows As Integer
    
    Set sourceSheet = Worksheets("Sheet1")
    
    sourceRows = WorksheetFunction.CountA(sourceSheet.Range("A:A"))
    
    Set sourceRange = sourceSheet.Range("A1:B" & sourceRows)
    
    Dim targetSheet As Worksheet
    Dim targetRange As Range
    Dim targetRows As Integer
    
    Set targetSheet = Worksheets("MasterSheet")
    
    targetRows = WorksheetFunction.CountA(targetSheet.Range("A:A"))
    
    Set targetRange = targetSheet.Range("A" & targetRows + 1 & ":B" & targetRows + 1 + sourceRows)
    
    sourceRange.Copy Destination:=targetRange
    
    End Sub
    

Замечания:

  • Для лучшего управления данными и файлами я использовал два MACRO.
  • Макрос использует COUNTA чтобы выяснить, как могут использоваться строки.
  • Если у вас есть заголовки столбцов на исходном листе и в мастер-файле, они дублируются. Поэтому вы можете захотеть, чтобы sourceRange начинался с A2 .

При необходимости измените ссылки на ячейки и имя листа.

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