更改连接到 OLAP 多维数据集的数据透视表中的筛选器



我有一个连接到OLAP多维数据集的数据透视表。在此表中,我想更改报告过滤器中的值,具体取决于单元格值。 我想更改的报告过滤器包含管理员 ID 号,这些号码都以 RS (fx RS34000( 开头。

我尝试使用这个例子,但这不起作用,这似乎是因为我的 ID 号不是一个值。 VBA将OLAP多维数据集中的数据透视过滤器更改为范围

我想在代码中更改的唯一部分是 ID 号"RSxxxxx"。

有人可以帮我解决这个问题吗?

我已经试过了,但这不起作用。

Dim MyArrayRS As Variant
Dim RS As Variant
Set RS = Range("RS_Nummer")
MyArrayRS = "Array(" & """[DimProjektRessource_ProjektAdministrator].[ProjektRessourceNr].&[RS" & RS & "]""" & ")"
Worksheets("KUBE").PivotTables("KUBE_NAV").PivotFields("[DimProjektRessource_ProjektAdministrator].[ProjektRessourceNr].[ProjektRessourceNr]").VisibleItemsList = MyArrayRS

这是我录制更改报表筛选器的宏时的代码。

ActiveSheet.PivotTables("KUBE_NAV").PivotFields( _
"[DimProjektRessource_ProjektAdministrator].[ProjektRessourceNr].[ProjektRessourceNr]" _
).VisibleItemsList = Array( _
"[DimProjektRessource_ProjektAdministrator].[ProjektRessourceNr].&[RS34762]")

来自PivotField.VisibleItemsList文档:

返回或设置一个 Variant ,该数组指定一个字符串数组,这些字符串表示应用于数据透视字段的手动筛选器中包含的项。读/写

目前,您"Array"MyArrayRS的一部分:这只是字符串"数组",而不是Array函数。

请尝试以下操作:

Dim RS As Range
Set RS = Range("RS_Nummer")
Dim MyArrayRS As Variant
myArrayRS = Array("[DimProjektRessource_ProjektAdministrator].[ProjektRessourceNr].&[RS" & rs.Value & "]")

最新更新