首页 > 解决方案 > 连接到 Power Pivot 的 Excel 切片器 - 选择多个切片器项目

问题描述

我正在尝试制作一个报告表格,询问您希望报告显示的月份和年份。但是,有一个特定的数据透视表使用四年范围来显示趋势数据。

但是,我的工作簿上的所有数据透视表都通过 Power Pivot/Data Model 连接。在这里使用这个源,我能够轻松地仅为单个项目更改切片器。

一个有效的例子:

ActiveWorkbook.SlicerCaches("Slicer_Month2").VisibleSlicerItemsList = "[Calendar].[Month].&[" & frmGen.cbMonth.Text & "]"

但是,当我使用循环替换切片器中的多个选择时,在完成循环所有选择后遇到错误,错误为“28”:堆栈空间不足。

    For i = 0 To 3 Step 1
        ActiveWorkbook.SlicerCaches("Slicer_Year").VisibleSlicerItemsList(i + 1) = "[Calendar].[Month].&[" & frmGen.txtYear.Text - 3 + i & "]"
    Next

由于切片器上已经选择了四个,它应该能够替换它,当我将代码添加到监视窗口时也显示了这一点。但它总是在循环之后显示该错误,即使我降低了循环计数。

是否有另一种方法可以在通过 Power Pivot 连接的切片器中选择多个项目?

标签: excelvbapivot-tablepowerpivotslicers

解决方案


感谢 Damian 为我的问题提供了线索,我只需要更新一个链接到切片器的数据透视表,它就可以很好地更新其他数据透视表。

For i = 0 To 3 Step 1
    ar(i) = "[Calendar].[Year].&[" & frmGen.txtYear.Text - 3 + i & "]"
Next

ActiveWorkbook.Sheets("pg2").PivotTables("pvtPg2_SPARK").PivotFields("[Calendar].[Year].[Year]").VisibleItemsList = ar

推荐阅读