PowerPivot 切片器在 VBA 过滤器后不刷新

PowerPivot Slicer Not Refreshing after VBA Filter

我正在尝试通过以下代码片段使用宏来过滤数据透视表 table。该代码有效,但切片器不会更新以反映刚刚应用的过滤器。如果我手动过滤枢轴 table,切片会更新。

我尝试了refresh/refresh所有、手动更新设置和屏幕更新设置。我卡住了。有什么想法吗?

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

切片器通过查看 PivotItem 是否可见来工作。使用 PivotFilters.Add Type:=xlCaptionContains 类型的策略将适当地过滤您的数据,但不会 "check" 正确的过滤框。

让 filters/slicers 以您想要的方式回应的方法就像

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

小心 selecting no 值,因为当你告诉它 select 什么都没有时,枢轴 table 会抛出错误。