Excel vba:创建宏以将切片器连接到多个透视表

Excel vba:创建宏以将切片器连接到多个透视表,excel,pivot-table,slicers,vba,Excel,Pivot Table,Slicers,Vba,我正在尝试创建一个宏来更改三个透视表的数据源。然后,已经在工作表上的单个切片器将连接到所有三个透视表。数据透视表都将从同一位置获取数据 尝试此操作时,在将切片器连接到透视表2和3的步骤中出现错误。如果我运行宏时只包含更改每个透视表的数据源的步骤,我注意到切片器在“report connections”框中只有一个选项,而不是3个 以下是我所拥有的: Sheets("Sales").Select ActiveSheet.PivotTables("PivotTable1").ChangePivotC

我正在尝试创建一个宏来更改三个透视表的数据源。然后,已经在工作表上的单个切片器将连接到所有三个透视表。数据透视表都将从同一位置获取数据

尝试此操作时,在将切片器连接到透视表2和3的步骤中出现错误。如果我运行宏时只包含更改每个透视表的数据源的步骤,我注意到切片器在“report connections”框中只有一个选项,而不是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")

我也有同样的问题,是最后一个括号导致了错误。 所以你应该替换这个:

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

请在此处阅读有关
切片器
切片器
的内容。如何手动执行请尝试在此处阅读有关
切片器
切片器
。如何手动操作