Слайсер PowerPivot не обновляется после фильтра VBA

Я пытаюсь использовать макрос для фильтрации сводной таблицы, используя приведенный ниже фрагмент кода. Код работает, однако слайсер не обновляется, чтобы отразить только что примененный фильтр. Если я вручную фильтрую сводную таблицу, срез обновляется.

Я пробовал обновить/обновить все, настройки обновления вручную и настройки обновления экрана. Я застрял. Любые идеи?

ActiveSheet.PivotTables("PivotTable1").PivotFields( _
    "[DataWithDuplicates_FULL].[PA_Select].[PA_Select]"). _
   PivotFilters.Add Type:=xlCaptionContains, Value1:=SrchTrm

person J. Maher    schedule 14.08.2015    source источник


Ответы (1)


Слайсер работает, проверяя, виден ли PivotItem или нет. Использование стратегии типа PivotFilters.Add Type:=xlCaptionContains будет соответствующим образом фильтровать ваши данные, но не будет «отмечать» нужные поля фильтра.

Способ заставить фильтры/слайсеры реагировать так, как вы хотите, похож на

Dim pf  As PivotField
Dim pi As PivotItem
Dim pt As PivotTable

Set pt = ActiveSheet.PivotTables("PivotTable1")
Set pf = pt.PivotFields("[DataWithDuplicates_FULL].[PA_Select].[PA_Select]")
pf.ClearAllFilters
For Each pi In pf.PivotItems
    pi.Visible = pi.Caption Like "*" & SrchTrm & "*"
Next pi

Будьте осторожны при выборе значений no, потому что сводная таблица выдаст ошибку, если вы скажете ей ничего не выбирать.

person Brad    schedule 14.08.2015