Excel:从另一张工作表筛选数据透视表/跨工作表重复筛选器

Excel:从另一张工作表筛选数据透视表/跨工作表重复筛选器

我正在使用 Excel for Mac 2011。

我有几个不同的数据透视表,每个数据透视表都用于组织数据以在摘要表上绘制图表。每个数据透视表都应以相同的方式进行筛选。

问题:

(1) 有没有办法移动/复制/链接这些过滤器,以便当一个过滤器改变时,其他过滤器也会改变? (VBA 现在适用于单选,但适用于多选呢?)

(2)有没有办法在主摘要页面上创建单一、通用的过滤器?


编辑:基本上,我希望在 Mac 版 Excel 中模拟 SLICERS。有什么想法吗?

答案1

使用我在网上找到的一些示例,我编写了以下 VBA 来实现我的需求。我在摘要页面上放置了一个空的数据透视表,并放置了一个链接到此宏的按钮,该按钮使用相同的过滤器更新所有其他数据透视表。


免责声明:这对于已选择“(全部)”的字段不起作用。我不需要研究,但可以修改以下代码以包含“(全部)”支持。


Sub UpdateAllPivotTables()
Dim ws As Worksheet
Dim wsMain As Worksheet
Dim ptMain As PivotTable
Dim pt As PivotTable
Dim pfMain As PivotField
Dim piMain As PivotItem
Dim pi As PivotItem
Dim pf As PivotField
Dim hadError As Boolean


On Error Resume Next
Set wsMain = ActiveSheet
Set ptMain = ActiveSheet.PivotTables(1)

Application.EnableEvents = False


For Each ws In ThisWorkbook.Worksheets
        If (Not (ws.Name = wsMain.Name)) Then
            ws.Unprotect
            For Each pt In ws.PivotTables
                    pt.ManualUpdate = True
                    For Each pf In pt.PageFields
                            For Each pi In pf.PivotItems
                                If (Not (pi.Visible = ptMain.PageFields(pf.Name).PivotItems(pi.Name).Visible)) Then
                                    pi.Visible = ptMain.PageFields(pf.Name).PivotItems(pi.Name).Visible
                                End If
                            Next pi
                    Next pf
                    pt.ManualUpdate = False
            Next pt
            'ws.Protect
        End If
Next ws
Application.EnableEvents = True

End Sub

相关内容