0

我正在使用一个 excel 工作簿,其中包含 5 个数据透视表,每个数据透视表都连接一个切片器,该切片器根据市场区域过滤统计数据。

我正在尝试编写一个将 SLICERS 连接在一起的 VBA 程序。例如,如果我在 Slicer1 上选择一个区域,我希望在其他 4 上选择该区域。

如果在第一个切片器中选择了 Auro,则应在其他切片器中选择它,并且不应选择其他区域

这是我写的代码:

Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
Dim sc1 As SlicerCache
Dim sc2 As SlicerCache
Dim sc3 As SlicerCache
Dim sc4 As SlicerCache
Dim sc5 As SlicerCache
Dim SI1 As SlicerItem

'These names come from Slicer Settings dialog box
Set sc1 = ThisWorkbook.SlicerCaches("Slicer_Market")
Set sc2 = ThisWorkbook.SlicerCaches("Slicer_Market1")
Set sc3 = ThisWorkbook.SlicerCaches("Slicer_Market2")
Set sc4 = ThisWorkbook.SlicerCaches("Slicer_Market3")
Set sc5 = ThisWorkbook.SlicerCaches("Slicer_Market4")

Application.ScreenUpdating = False
Application.EnableEvents = False

sc2.ClearManualFilter
sc3.ClearManualFilter
sc4.ClearManualFilter
sc5.ClearManualFilter

For Each SI1 In sc1.SlicerItems
    sc2.SlicerItems(SI1.Name).Selected = SI1.Selected
    sc3.SlicerItems(SI1.Name).Selected = SI1.Selected
    sc4.SlicerItems(SI1.Name).Selected = SI1.Selected
    sc5.SlicerItems(SI1.Name).Selected = SI1.Selected

Next SI1

Application.EnableEvents = True
Application.ScreenUpdating = True

End Sub

在 FOR EACH LOOP 之后的第一行出现运行时错误“5”。

4

0 回答 0