0

我正在尝试过滤可数据透视字段“名称”以仅显示标题中包含“AA5”的记录。

当我录制宏时,似乎只取消选择不包含 AA5 的最新项目(使用 false 属性)。而不是使用 AA5=true 属性。

但是,由于枢轴不断更新新数据,第二次运行宏不会删除新添加的项目,因为代码已经确定了哪些不显示,而不是显示哪些。

Sub Macro3()

    Range("A8").Select
    ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh
    With ActiveSheet.PivotTables("PivotTable1").PivotFields("Name")
            With ActiveSheet.PivotTables("PivotTable1").PivotFields("Name")
        .PivotItems("Test:777:1").Visible = False
        .PivotItems("Test:777:2").Visible = False
        .PivotItems("Test:777:3").Visible = False

    End With

End Sub
4

2 回答 2

1

It would go this way:

Sub Quick()
    Dim PTfield As PivotField

    Set PTfield = ActiveSheet.PivotTables(1).PivotFields("Name")
    With PTfield
        .ClearAllFilters
        .PivotFilters.Add xlCaptionEquals, , "AA5" 'for exact matching
    End With

End Sub

If AA5 is a part of filtering fields, then change parameter into xlCaptionContains.

于 2013-03-22T06:41:53.227 回答
1

这是一个实际有效的简单宏。我有一个数据透视表,其中包含 H 列订单填充率 % 的各种成品。98.5% 或更低的订单完成率被认为是不好的。该宏将从第 5 行开始转到 H 列,然后逐行检查填充率。它将隐藏好的行,让需要进一步分析或操作的行可见。它将继续这样做,直到到达“最后一行”

子 zSeries09_FilterPivotTable_ByFillRate98pt5() ' ' zSeries09_FilterPivotTable_ByFillRate98pt5 宏 '

' Application.Calculation = xlManual

Dim LR As String

Selection.SpecialCells(xlCellTypeLastCell).Select

LR = ActiveCell.Row

Application.Goto Reference:="R5C8"

常规:

 If ActiveCell.Row < LR Then GoTo TestError Else GoTo EndCom

测试错误:

 If IsError(ActiveCell) = True Then GoTo HideRow Else

测试空白:

 If IsEmpty(ActiveCell) = True Then GoTo HideRow Else

测试填充率:

 If ActiveCell.Value >= 0.985 Then GoTo HideRow Else

不隐藏:

 Application.Goto Reference:="R[1]C"

 GoTo Routine

隐藏行:

 Selection.EntireRow.Hidden = True
Application.Goto Reference:="R[1]C"

GoTo Routine

终端通讯:

Application.Calculation = xlAutomatic

结束子

于 2014-05-14T18:14:46.870 回答