使用数组中的项过滤基于OLAP的数据透视表切片器时遇到问题。
我有一个由与切片器项目标题相同的机器编号组成的数组,如下所示:
machines = Array("Machine1", "Machine2", "Machine3" etc.. )
我想使用这个数组来过滤切片器:
ActiveWorkbook.SlicerCaches("MachinesSlicer").VisibleSlicerItemsList = Array(machines)
并且它工作正常,直到在数组中有一个在切片器项中不可见的机器号(例如由于其他切片器过滤,例如日期等)。有没有办法绕过那些导致问题的项目?
我试图创建一个新数组,循环切片器项并使用以下方法将它们与数组项进行比较:
For Each machName In machines
For Each si1 In sl1.SlicerItems
If si1.Caption = machName Then
TestArray = TestArray & Chr(34) & si1.Caption & Chr(34) & Chr(44)
End If
Next si1
Next machName
但它的作用是创建一个具有单个元素的数组,该元素看起来像一个字符串:
"Machine1", "Machine2", Machine3" ...etc
但我需要将这些元素分开,以便将它们传递给VisibleSlicerItemsList。
也许你们中的一些人会知道如何解决这个问题。任何帮助将不胜感激,谢谢!
忽略我之前的回答,金发时刻。你需要一个阵列。
您可以基于sl1.SlicerItems
创建动态数组
Dim dynArr()
Dim i as Integer 'Long
Dim si1
For Each si1 In sl1.SlicerItems
i = i + 1
ReDim Preserve dynArr(1 To i)
dynArr(i) = si1.Caption
Next
问候同事;)