首页 文章

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

提问于
浏览
0

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

当我尝试这个时,我在将切片器连接到数据透视表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"))

1 回答

  • 0

    我遇到了同样的问题,这是造成错误的最后一个括号 . 所以你应该替换这个:

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

相关问题