【发布时间】:2015-12-05 19:50:02
【问题描述】:
我有几个使用不同缓存的数据透视表。所有这些表都是通过数据连接创建的,并且都使用了数据模型。我正在尝试创建同时过滤所有表的主切片器。
使用 VBA,我的想法是从 pivotcache1(我的主切片器链接到的缓存)填充所有可见数据透视项的数组,然后循环通过这个数组来过滤我的其他缓存(pivotcache2 和 pivotcache3)。
但是,下面的代码不起作用 - 它在 For Each 循环处发生故障。
Sub FilterMonth()
Dim sc1, sc2, sc3 As SlicerCache
Dim si As SlicerItem
Set sc1 = ActiveWorkbook.SlicerCaches("Slicer_ClickMonth")
Set sc2 = ActiveWorkbook.SlicerCaches("Slicer_Visit_Month1")
Set sc3 = ActiveWorkbook.SlicerCaches("Slicer_Visit_Month")
For Each si In sc1.SlicerItems
If si.Selected Then
'Add to my array
End If
Next
End Sub
我相信这是因为建立在数据模型上的缓存的语法不同。
任何人都可以确认这一点和/或向我提供过滤所有数据模型缓存的代码吗?
【问题讨论】: