Excel VBA:创建一个宏以将切片机连接到多个枢轴表



我正在尝试创建一个宏,该宏将更改三个枢轴表的数据源。然后,已经在表上的单个切片机连接到所有三个枢轴表。枢轴表都将从同一位置获取他们的数据。

尝试此操作时,我会在步骤中遇到一个错误,将切片机连接到枢轴表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"))

i有相同的问题,而最后一个括号引起了错误。因此,您应该替换此:

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")

最新更新