VBA将OLAP多维数据集中的透视筛选器更改为一个范围

我有一个数据透视表,从一个OLAP多维数据集中提取数据,我想创build一个macros来过滤一个包含基于另一个单元格中的值的“Week of Year”的透视字段,以便我可以轻松地更改时间桌子的框架。

我对立方体的使用经验非常有限,所以我使用macroslogging器来查看发生了什么。 我得到的示例代码是:

ActiveSheet.PivotTables("PivotTable3").PivotFields( _ "[Time].[Week of Year].[Week of Year]").VisibleItemsList = Array( _ "[Time].[Week of Year].&[1]", "[Time].[Week of Year].&[2]", _ "[Time].[Week of Year].&[3]") 

有没有一种方法来简化这个,以便它将数组1设置为n,其中n是另一个单元格的值? 我的目标是能够显示1至15周,通过在指定的字段中input15。

它应该是这样的:

 Dim aWeeks() Dim n As Long Dim x As Long n = Range("A1").Value ReDim aWeeks(n - 1) For x = 1 To n aWeeks(x - 1) = "[Time].[Week of Year].&[" & x & "]" Next x ActiveSheet.PivotTables("PivotTable3").PivotFields( _ "[Time].[Week of Year].[Week of Year]").VisibleItemsList = aWeeks