数据透视表,页面过滤器 - 使用日期过滤

时间:2015-10-19 20:08:38

标签: excel vba excel-vba

我正在尝试过滤具有日期值的Page过滤器。但是当我使用.PivotFilters.Add type:=xlBefore, value:="5/1/2015"时,我一直收到错误。 我也试过下面的代码:

Dim nd As Long
nd = CLng(Date - 90)

pvt.PivotFields("startdate").ClearAllFilters
pvt.PivotCache.Refresh
pvt.PivotFields("startdate").PivotFilters.Add Type:=xlBefore, Value:=nd

但是现在我得到未找到命名参数

数据透视表已成功创建但未过滤。

1 个答案:

答案 0 :(得分:0)

Report Filter过滤中使用透视字段时,它与RowColumn Label时不同。请参阅以下代码,在startdate上的Report Filter设置过滤条件。

Dim nd As Date
nd = CLng(Date - 90)

Dim pvt As PivotTable
Set pvt = Sheet1.PivotTables(1)

With pvt

    .PivotCache.Refresh

    Dim pf As PivotField
    Set pf = .PivotFields("startdate")

    With pf

        .ClearAllFilters

        Dim pi As PivotItem
        For Each pi In pf.PivotItems
            If pi < nd Then pi.Visible = True Else: pi.Visible = False
        Next

    End With

End With