首页 > 解决方案 > 基于范围的切片器选择

问题描述

我有一个数据透视表,显示满足特定条件的客户列表。此外,我还有一串连接到切片器的其他数据透视表。我需要我的切片器自动过滤出现在第一个数据透视表上的客户代码。

我有以下内容 - 但是我收到“错误 457 - 密钥已与此集合中的元素相关联”出了什么问题?

Option Explicit

Sub filterSlicers()

    Dim i As Long, SI As SlicerItem, SC As SlicerCache, PvT As PivotTable, C As Range, Cell As Range, ws As Worksheet
    Dim DictFilter As Scripting.Dictionary

    For Each PvT In ThisWorkbook.Sheets("Sheet1").PivotTables
        PvT.ManualUpdate = True
    Next PvT

    Set ws = ThisWorkbook.Sheets("Sheet1")
    Set C = ws.Range("A12:A120")

    Set DictFilter = New Scripting.Dictionary
    For Each Cell In C
        DictFilter.Add Cell.Value, 1
    Next Cell


    Set SC = ThisWorkbook.SlicerCaches("Customer_Code")
    SC.ClearAllFilters
    For Each SI In SC.VisibleSlicerItems
        Set SI = SC.SlicerItems(SI.Name)
        If DictFilter.Exists(SI.Name) Then
            SI.Selected = True
        Else
            SI.Selected = False
        End If
    Next

    For Each PvT In ThisWorkbook.Sheets("Sheet1").PivotTables
        PvT.ManualUpdate = False
    Next PvT
End Sub

谢谢,

标签: slicers

解决方案


推荐阅读