1

Я пытаюсь создать график, вручную или с помощью VBA, который будет автоматически обновляться при добавлении новых листов. Данные импортируются из внешней таблицы ежемесячно и каждый раз добавляются на новый лист. Структура данных всегда одинакова.

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

Я попытался использовать макрос-рекордер вместе с мастером PivotChart, а затем изменил его с помощью цикла for, например так:

For i = 1 To Sheets.Count
ActiveWorkbook.PivotCaches.Create(SourceType:=xlConsolidation, SourceData:= _
Array("Sheet" & i & "!R1C1:R10C7", "Item1"), _
Version:=6).CreatePivotTable TableDestination:="", TableName:= _
"PivotTable1", DefaultVersion:=6

More Code

Next i

Остальная часть кода устанавливает сумму значений и так далее.

Я вижу, что есть PivotCaches.Метод элемента, но я ничего не вижу об обновлении существующей сводной диаграммы.

Это не обязательно должна быть сводная диаграмма, если бы обычный график работал. Точно так же, если есть способ сделать это без VBA, это тоже хорошо.

РЕДАКТИРОВАТЬ: Я думаю, я понял это. Любая критика приветствуется.

For i = 1 To Sheets.Count
If IsEmpty(pivotArray) Then
    pivotArray = Array(1)
    ReDim Preserve pivotArray(1 To UBound(pivotArray) + 1) As Variant
    pivotArray(1) = Array("Sheet" & i & "!R1C1:R4C3", "Item1")
Else
    ReDim Preserve pivotArray(1 To UBound(pivotArray) + 1) As Variant
    pivotArray(UBound(pivotArray)) = Array("Sheet" & i & "!R1C1:R4C3", "Item1")
End If
Next i

0