我正在尝试创建一个宏来更改三个数据透视表的数据源。然后,工作表上已有的单个切片器将连接到所有三个数据透视表。数据透视表都将从同一位置获取数据。
当我尝试此操作时,在将切片器连接到数据透视表 2 和 3 的步骤中出现错误。如果我仅使用更改每个数据透视表的数据源的步骤运行宏,我注意到切片器仅具有“报告连接”框中的一个选项而不是 3。
这是我所拥有的:
Sheets("Sales").Select
ActiveSheet.PivotTables("PivotTable1").ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:="Table3", Version _
:=xlPivotTableVersion15)
ActiveSheet.PivotTables("PivotTable2").ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:="Table3", Version _
:=xlPivotTableVersion15)
ActiveSheet.PivotTables("PivotTable3").ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:="Table3", Version _
:=xlPivotTableVersion15)
ActiveWorkbook.SlicerCaches("Slicer_Year").PivotTables.AddPivotTable ( _
ActiveSheet.PivotTables("PivotTable1"))
ActiveWorkbook.SlicerCaches("Slicer_Year").PivotTables.AddPivotTable ( _
ActiveSheet.PivotTables("PivotTable2"))
ActiveWorkbook.SlicerCaches("Slicer_Year").PivotTables.AddPivotTable ( _
ActiveSheet.PivotTables("PivotTable3"))
我遇到了同样的问题,是最后一个括号导致了错误。 所以你应该替换这个:
ActiveWorkbook.SlicerCaches("Slicer_Year").PivotTables.AddPivotTable ( _
ActiveSheet.PivotTables("PivotTable2"))
这样:
ActiveWorkbook.SlicerCaches("Slicer_Year").PivotTables.AddPivotTable _
ActiveSheet.PivotTables("PivotTable2")
您也可以这样编写代码:
Dim WB as Workbook
Dim WS as Worksheet
Set WB = ActiveWorkbook
Set WS = WB.Sheets("Sales")
WB.SlicerCaches("Slicer_Year").PivotTables.AddPivotTable _
WS.PivotTables("PivotTable2")