【问题标题】:Excel Table and Pivot Table Data changes with one Slicer使用一个切片器更改 Excel 表和数据透视表数据
【发布时间】:2020-06-21 14:38:10
【问题描述】:

我有 Excel 表 (Ctr + T),并在不同的 Excel 选项卡上使用相同的 Excel 表制作了一个数据透视表。 有什么方法可以用一个切片器同时更改(Excel 表和数据透视表)。或者可能更改一个切片器会导致另一个切片器发生变化。

我看过视频和其他问答论坛,它们没有达到目的。

我尝试通过进入切片器中的 报告连接 选项来连接两个切片器。但我找不到第二个切片器名称。

【问题讨论】:

    标签: excel vba excel-formula


    【解决方案1】:

    如果您创建两个切片器,一个用于表格,一个用于数据透视表,您可以通过事件宏控制表格切片器。把它放在你的 ThisWorkbook 模块中:

    Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
        Dim PivotSlicer As SlicerCache
        Dim TableSlicer As SlicerCache
    
        Set PivotSlicer = ActiveWorkbook.SlicerCaches("<Name of pivot slicer>")
        Set TableSlicer = ActiveWorkbook.SlicerCaches("<Name of table slicer>")
    
        Dim PivotSlicerItem As SlicerItem
        Dim TableSlicerItem As SlicerItem
    
        TableSlicer.ClearAllFilters
        For Each PivotSlicerItem In PivotSlicer.SlicerItems
            Set TableSlicerItem = TableSlicer.SlicerItems(PivotSlicerItem.Name)
            TableSlicerItem.Selected = PivotSlicerItem.Selected
        Next
    End Sub
    

    更新第 5 行和第 6 行中切片器的名称。这将遍历数据透视切片器中的项目并将表切片器设置为相同的值。

    需要表格切片器,但应使其不可见。

    【讨论】:

    • 嗨@Sam .. 我将上面的代码保存在项目资源管理器下的“this Workbook”中。还更改第 5 行和第 6 行中的切片器名称.. 但它仍然无法正常工作。 :(
    • 在第 11 行设置断点,并在代码停止时检查 PivotSlicer 和 TableSlicer 的值。它们是空的吗?
    • 嗨 Sam,我尝试在第 11 行设置断点并再次运行,但似乎没有任何效果。我在下面的路径中放置了一个“VBA_Example”命名文件。 github.com/supersaiyan12/Query
    • 对不起。我不会下载 .xlsm 文件。我相当确定上面的代码有效。我的建议是您创建一个新的干净的工作簿,使用最少的代码和数据,看看您是否可以让它工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-14
    • 1970-01-01
    • 1970-01-01
    • 2013-12-18
    相关资源
    最近更新 更多