我正在尝试手动或使用 VBA 创建一个图表,该图表会在添加新工作表时自动更新。数据每月从外部表导入,每次都添加到新工作表中。数据结构每次都相同。
如果我想更新新的行和列,我知道如何使用动态图,但这是不同的。
我尝试将宏记录器与数据透视图向导一起使用,然后使用 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.Item 方法,但我没有看到任何有关更新现有数据透视图的内容。
如果常规图表可以工作,则不必使用数据透视图。同样,如果有一种方法可以不使用 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