在 Excel 2003 中筛选数据透视表

Posted

技术标签:

【中文标题】在 Excel 2003 中筛选数据透视表【英文标题】:Filter pivottable in 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

【问题讨论】:

【参考方案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”是什么? 我尝试将排序顺序设置为手动,并将方向设置为激增但无帮助 但是我没有建议与排序顺序和方向有关:) 你能详细解释一下问题是什么吗? 我将设置一个显示问题的小示例项目。我可以在哪里与您共享表格?

以上是关于在 Excel 2003 中筛选数据透视表的主要内容,如果未能解决你的问题,请参考以下文章

怎么全部取消excel2003数据透视表中的分类汇总

Excel数据透视表制作 这6个技巧超好用

如何将excel表格中数据透视后的汇总一栏去掉呢?

Excel数据透视表、切片器如何做?

如何刷新数据透视图

excel2013做数据透视表