使用VBA更改数据透视表的源数据

时间:2018-10-02 12:11:42

标签: excel vba

如何使动态选择源数据成为可能。这意味着,如果下个月数据计数增加/减少,则代码会自动选择所有数据。

Sub Macro7()
    Sheets("Summary Global").Select
    Application.CutCopyMode = False
    ActiveSheet.PivotTables("PivotTable1").ChangePivotCache ActiveWorkbook. _
        PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "C:\Desktop\LEAD & LAG Report\LAG Data\2018\July\[LAG_July 2018 Report - Global - Copy.xls]DATA!R1C1:R1138C168" _
        , Version:=xlPivotTableVersion10)
    ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh
    ActiveSheet.PivotTables("PivotTable1").PivotFields("month of closure"). _
        CurrentPage = "aug. 2018"
End Sub

1 个答案:

答案 0 :(得分:0)

问题是您的范围固定在某一行。

您可以将源数据的引用更改为C1:C168。这样就一直下降。

另一种选择是使用命名范围,并在每次数据更改时更改命名范围。 例如:

Call ThisWorkbook.Names.Add("rangeForPivot", ThisWorkbook.Worksheets("rangeForPivot").UsedRange())