【问题标题】:VBA select all items in a pivot report filter greater/less than a numberVBA选择透视报告过滤器中大于/小于数字的所有项目
【发布时间】:2019-05-07 13:49:58
【问题描述】:

我有一个一年中一周的数据透视表报告过滤器,我希望能够选择最多特定数字的周。例如,过滤掉大于第 18 周的所有周。

我在下面有一些代码循环通过报告过滤器并取消选择比当前周大的所有周。但是,这需要几秒钟的时间才能运行,我更喜欢即时的东西(我也在尽可能地避免工作中的循环)。

我曾尝试使用 PivotFields.Add,但遇到了一系列运行时错误。这是可以在没有循环的情况下完成的吗?

Dim PvtTbl As PivotTable
Set PvtTbl = Worksheets("Pivot").PivotTables("PivotTable2")

PvtTbl.ClearAllFilters

PvtTbl.PivotFields("Week_Of_Year").PivotFields.Add Type:=xlValueIsLessThanOrEqualTo, Value1:=18

【问题讨论】:

  • 具有讽刺意味的是,您不能将过滤器表达式添加到报表过滤器,只能添加到行/列字段。
  • @Rory 很好地解释了错误 - 谢谢!

标签: excel vba pivot


【解决方案1】:

虽然您可能无法与筛选器选择中的字段进行交互,但您仍然可以将筛选器直接应用于数据透视表中的列。阅读您正在寻找的内容,我认为这可能会让您到达那里。

PvtTbl.PivotFields("Week_of_Year").PivotFilters.Add Type:=xlCaptionIsLessThanOrEqualTo, Value1:=18

【讨论】:

    猜你喜欢
    • 2013-12-12
    • 1970-01-01
    • 2017-08-21
    • 2019-04-25
    • 2012-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多