【问题标题】:Filter Pivot Table for fields containing a value筛选包含值的字段的数据透视表
【发布时间】:2013-03-11 16:36:46
【问题描述】:

我正在尝试过滤可透视字段“名称”以仅显示标题中包含“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

【问题讨论】:

    标签: excel filter pivot vba


    【解决方案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
    

    TestFillRate:

     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
    

    结束子

    【讨论】:

      【解决方案2】:

      会这样:

      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
      

      如果AA5是过滤字段的一部分,则将参数更改为xlCaptionContains

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-02-02
        • 2013-10-02
        • 2016-01-07
        • 1970-01-01
        • 2012-05-14
        • 1970-01-01
        • 2021-11-30
        • 1970-01-01
        相关资源
        最近更新 更多