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

VBA to change Pivot Filter in OLAP cube to a range

我有一个从 OLAP 多维数据集提取数据的数据透视表 table,我想创建一个宏来根据另一个单元格中的值过滤包含 'Week of Year' 的数据透视表字段, 这样我就可以轻松更改 table.

的时间范围

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

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 是另一个单元格的值?我的目标是通过在指定字段中输入 15 来显示第 1 周到第 15 周。

应该是这样的:

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