【发布时间】:2016-02-09 18:07:09
【问题描述】:
我在数据透视表上有四个过滤器,week_of_year(1,2 到 52),日期(2012 年 1 月 1 日到 2016 年 2 月 7 日),年(2012 年到 2016 年),城市(纽约到旧金山)
Sub datefilter()
Dim PvtTbl As PivotTable
Set PvtTbl = Worksheets("test").PivotTables("PivotTable3")
Dim pf As PivotField
Dim pf1 As PivotField
Dim PI As PivotItem
Set pf =
Worksheets("test").PivotTables("PivotTable3").PivotFields("week_of_year")
Set pf1 =
Worksheets("test").PivotTables("PivotTable3").PivotFields("year")
Set pf2 =
Worksheets("test").PivotTables("PivotTable3").PivotFields("Date")
Set pf3 =
Worksheets("test").PivotTables("PivotTable3").PivotFields("city")
PvtTbl.ClearAllFilters
For Each PI In pf.PivotItems
If PI.Name = "7" Then
PI.Visible = True
Else
PI.Visible = False
End If
Next
For Each PI In pf1.PivotItems
If PI.Name = "2014" Or PI.Name = "2015" Then
PI.Visible = True
Else
PI.Visible = False
End If
Next
''Same for the Date,city, have multiple items selected as filter.
End Sub
这可行,但需要永远运行,因为它循环每条记录。尝试找到一种更有效的方法来做到这一点。任何人都可以使用 currentpage 或 pivotfield.add 来实现相同的目标吗?欣赏!!!非常感谢!
特殊要求:数据透视表链接到数据库。所以当新的日期闪现时,需要从过滤器中选择更多的日期。例如,如果 2/9/16 进入,也需要选择 data
【问题讨论】:
标签: excel vba pivot-table