VBA过滤后PowerPivot切片器无法刷新

时间:2015-08-14 20:13:52

标签: excel vba excel-vba filter powerpivot

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

我尝试了刷新/刷新全部,手动更新设置和屏幕更新设置。我被卡住了。有什么想法吗?

.class1 {
    height: 200px;
    background-color: blue;
    color: white;
    width: 100px;
    overflow-y: scroll;
    overflow-x: hidden;
    direction: rtl;
    -webkit-transform: rotate(180deg);
}
.class2 {
    direction: ltr;
    -webkit-transform: rotate(180deg);
}

1 个答案:

答案 0 :(得分:0)

切片器的工作原理是查看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 值,因为当您告诉它不选择任何内容时,数据透视表会抛出错误。