Изменение фильтра в сводной таблице, подключенной к кубу OLAP - PullRequest
1 голос
/ 03 октября 2019

У меня есть сводная таблица, которая подключена к кубу OLAP. В этой таблице я хотел бы изменить значение в фильтре отчетов, в зависимости от значения ячейки. Фильтр отчетов, который я хочу изменить, содержит идентификационные номера администраторов, которые начинаются с RS (fx RS34000).

Я пытался использовать этот пример, но это не сработало, и похоже, что мой идентификаторчисло не является значением. VBA для изменения сводного фильтра в кубе OLAP на диапазон

Единственная часть, которую я хочу изменить в коде, - это идентификационный номер "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]")

1 Ответ

1 голос
/ 03 октября 2019

Из документации PivotField.VisibleItemsList:

Возвращает или задает вариант, задающий массив строк, которые представляют включенные элементы в примененном ручном фильтрев сводное поле. Чтение / запись

В настоящее время у вас есть "Array" как часть MyArrayRS: это просто String «Массив», а не Array функция.

Попробуйте следующее:

Dim RS As Range
Set RS = Range("RS_Nummer")

Dim MyArrayRS As Variant
myArrayRS = Array("[DimProjektRessource_ProjektAdministrator].[ProjektRessourceNr].&[RS" & rs.Value & "]")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...