我有一个从OLAP多维数据集中提取数据的数据透视表,我想创建一个宏来根据另一个单元格中的值过滤包含“Year of Year”的数据透视表字段,以便我可以轻松改变表格的时间范围。
我对立方体集的体验非常有限,所以我使用宏录制器来查看发生了什么。我得到的示例代码是:
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周。
答案 0 :(得分:3)
它应该是这样的:
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