【问题标题】:Filtering to show two specific choices in a pivot table report filter过滤以在数据透视表报表过滤器中显示两个特定选项
【发布时间】:2026-02-09 14:25:01
【问题描述】:

这感觉像是一个愚蠢的问题,但我所有的谷歌搜索,我都无法弄清楚。我正在编写一些 VBA 脚本来帮助快速过滤一些数据透视表。

假设我有一个包含一些标准销售数据的数据透视表。 “报告过滤器”字段之一是“状态”。

我已经弄清楚如何显示单个状态:

Dim pt As PivotTable
Set pt = Sheets("Sales").PivotTables("SalesPivot")
pt.ClearAllFilters
pt.PivotFields("State").CurrentPage = "Oregon"

上面的效果很好。但是除了显示“俄勒冈”和“加利福尼亚”之外,我将如何做完全相同的事情? (另外,如果有更好的方法来完成上述操作,我会全力以赴)

我会先手动选中“选择多个项目”框,然后取消选中“(全部)”选项以选择无,然后滚动选项以查找并选中“加利福尼亚”和“俄勒冈”,然后点击确定。

谢谢!

【问题讨论】:

标签: excel pivot-table vba


【解决方案1】:

对于这个问题的未来发现者,这就是我所做的:

Sub SelectMultiplePivotFilter()

Dim pt As PivotTable
Dim pf As PivotField
Set pt = Sheets("Sales").PivotTables("SalesPivot")
Set pf = pt.PivotFields("State")

pt.ClearAllFilters

For Each pi In pf.PivotItems
    If pi.Value = "California" Or pi.Value = "Oregon" Then
        pi.Visible = True
    Else
        pi.Visible = False
    End If
Next pi

End Sub

【讨论】: