用数组中的项目过滤基于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
但是我需要将这些元素分开以便将它们传递到VisibleSlicerItemList中。
也许你们中的某些人对解决此问题有任何想法。 任何帮助将不胜感激,谢谢!
答案 0 :(得分:0)
忽略我以前的回答,金发碧眼的时刻。您需要一门课程。
您可以基于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
Pozdrawiam kolege;)