【问题标题】:Filter pivottable in Excel 2003在 Excel 2003 中筛选数据透视表
【发布时间】:2012-02-20 12:19:13
【问题描述】:

如何使用 VBA 在 Excel 2003 中过滤数据透视表?

在 Excel 2007 中我可以运行此宏,但在 XL 2003 中未实现 PivotFilters。

Dim ws As Worksheet: Set ws = Sheets("Sheet1")
ws.PivotTables("PivotTable1").PivotFields("Date").PivotFilters.Add _
        Type:=xlSpecificDate, Value1:="26/01/2012"

更新: 我收到错误“运行时错误'1004”。无法设置 PivotItem 类的 Visible 属性。

子过滤器() 将 PvtItem 调暗为 PivotItem 将 ws 作为工作表进行调暗

Set ws = Sheets("pivot")

'~~> Show All
For Each PvtItem In ws.PivotTables("PivotTable1").PivotFields("Date").PivotItems
    PvtItem.Visible = True
Next

'~~> Show Only the relevant
For Each PvtItem In ws.PivotTables("PivotTable1").PivotFields("Date").PivotItems
    If PvtItem.Value <> "26/01/2012" Then PvtItem.Visible = False  '<-- error here
Next

结束子

http://wikisend.com/download/426518/pivot.xls

【问题讨论】:

    标签: excel excel-2003 vba


    【解决方案1】:

    要在 VBA 2003 中过滤数据透视字段,您必须设置/取消设置 .Visible 属性。这是一个例子

    Option Explicit
    
    Sub Filter()
        Dim PvtItem As PivotItem
        Dim ws As Worksheet
    
        On Error GoTo Whoa1
    
        Set ws = Sheets("pivot")
    
        '~~> Show All
        For Each PvtItem In ws.PivotTables("PivotTable1").PivotFields("Date").PivotItems
            PvtItem.Visible = True
        Next
    
        On Error GoTo Whoa2 '<~~ If no match found in Pivot
    
        '~~> Show Only the relevant
        For Each PvtItem In ws.PivotTables("PivotTable1").PivotFields("Date").PivotItems
            If Format(PvtItem.Value, "DD/MM/YYYY") <> Format(Range("today"), "DD/MM/YYYY") Then
                PvtItem.Visible = False
            End If
        Next
    
        Exit Sub
    Whoa1:
        MsgBox Err.Description
        Exit Sub
    Whoa2:
        '~~> Show All
        For Each PvtItem In ws.PivotTables("PivotTable1").PivotFields("Date").PivotItems
            PvtItem.Visible = True
        Next
    End Sub
    

    【讨论】:

    • 我收到一个错误:“无法设置可见属性 PivotItem 类” 这似乎是一个已知错误,我正在使用 Microsoft 支持工程师。我会让你知道我有什么解决方案。 social.msdn.microsoft.com/Forums/en/isvvba/thread/…
    • 对不起,我听不懂?你指的“bug”是什么?
    • 我尝试将排序顺序设置为手动,并将方向设置为激增但无帮助
    • 但是我没有建议与排序顺序和方向有关:) 你能详细解释一下问题是什么吗?
    • 我将设置一个显示问题的小示例项目。我可以在哪里与您共享表格?
    猜你喜欢
    • 2012-05-14
    • 1970-01-01
    • 1970-01-01
    • 2021-11-30
    • 1970-01-01
    • 1970-01-01
    • 2019-02-02
    • 2013-10-02
    • 2012-09-13
    相关资源
    最近更新 更多