首页 > 解决方案 > 如何过滤数据透视表以仅包含 2019 年的日期(多选)

问题描述

我有创建数据透视表的 vba 代码,但我想过滤 2019 年的日期(“预定发货日期”部分)。

'create pivot table
Set pvt2 = pvtcache.CreatePivotTable(TableDestination:=startpvt, TableName:="PivotTable2")

pvt2.PivotFields("Scheduled Ship Date").Orientation = xlRowField
With pvt2.PivotFields("Week")
        .Orientation = xlPageField
        .Position = 1
End With

With pvt2.PivotFields("Item Type")
        .Orientation = xlPageField
        .Position = 2
End With

With pvt2.PivotFields("Quantity Ordered")
        .Orientation = xlDataField
End With

    pvt2.PivotFields("Item Type").ClearAllFilters
    ActiveSheet.PivotTables("PivotTable2").PivotFields("Item Type").CurrentPage = "KIT"

pvt2.PivotFields("Week").ClearAllFilters
    ActiveSheet.PivotTables("PivotTable2").PivotFields("Week").CurrentPage = Cells(2, 2).Value

End Sub

标签: excelvbapivot-table

解决方案


通过更改数据透视表名称数据透视表列、工作表名称来修改以下代码并尝试:

Option Explicit

Sub test()

    Dim pf As PivotField

    With ThisWorkbook.Worksheets("Sheet1")

        Set pf = ActiveSheet.PivotTables("pvtTest").PivotFields("Year")

        pf.ClearAllFilters

        pf.CurrentPage = "2019"

    End With

End Sub

推荐阅读