Фильтр по кубическому полю VBA

#excel #vba #pivot-table

#excel #vba #сводная таблица

Вопрос:

Для обычной сводной таблицы я делаю

 For Each item In .PivotTables("table1").PivotFields("field1").PivotItems
    If item.Value = "asdf" Then
        item.Visible = True
    Else
        item.Visible = False
    End If
Next item
  

где field1 это не поле страницы. Могу ли я сделать то же самое в сводной таблице модели данных? Я читал о CubeFields, но у меня не установлен PowerPivot.

Ответ №1:

Никакая документация, форум или видеоурок не могли подтолкнуть меня к этому ответу, поэтому я делюсь им ради будущего человечества.

 .PivotTables("table1").CubeFields( _
    "[MyDB].[field1]").CreatePivotFields
.PivotTables("table1").PivotFields( _
    "[MyDB].[field1].[field1]").VisibleItemsList = Array( _
    "[MyDB].[field1].amp;[asdf])
  

Замените MyDB , table1 , field1 и asdf своими собственными объектами.