【发布时间】:2020-03-10 17:49:11
【问题描述】:
我正在寻找一种方法来根据机器类型(我将一个字段拖到我的数据透视表的过滤器框)过滤我的数据透视表。我之前使用过下面的公式,它已经奏效了,但是,我收到一条错误消息,提示“1004:无法获取数据透视表类的数据透视字段。
任何帮助都将不胜感激,我已经在这个项目上工作了很长时间,这是我需要完成的最后一步。 (仅供参考,单元格 A1 具有我要过滤的机器名称)
Sub FilterbyMachine()
Dim pt As PivotTable
Set pt = Sheets("Pivottables").PivotTables("MachineStats")
Dim pf As PivotField
Set pf = pt.PivotFields("Machine")
pf.ClearAllFilters
'slow iterates all items and sets Visible (manual filter)
Dim pi As PivotItem
For Each pi In pf.PivotItems
pi.Visible = (pi.Name = Range("a1"))
Next
'fast way sets a label filter
pf.PivotFilters.Add2 Type:=xlCaptionEquals, Value1:=Range("a1")
End Sub
【问题讨论】:
-
这对你的问题没有帮助,但是在循环之前
pt.ManualUpdate = True然后设置为False肯定会提高速度。