【发布时间】:2018-03-11 06:03:45
【问题描述】:
我的目标是使用另一个工作表中的范围过滤数据透视表。此范围从第三张表中提取数据,这是启动大量公式并在每次使用时都会更改的数据转储。
我有以下代码,但我可以看到它正在运行每个数据透视表字段,将其与范围进行比较,然后删除过滤器。我有 32,000 个字段需要检查,因此当前的宏使用起来太慢了。
谁能帮我修复代码,使其仅根据非空白范围内的值进行过滤?
Sub PT()
Dim PT As PivotTable
Dim PI As PivotItem
Set PT = Sheets("Pivot_Sheet").PivotTables("PivotTable2")
With Sheets("Pivot_Sheet").PivotTables("PivotTable2").PivotFields("Product")
.ClearAllFilters
End With
For Each PI In PT.PivotFields("Product").PivotItems
PI.Visible = WorksheetFunction.CountIf(Sheets("Sheet1").Range("J2:J100"),
PI.Name) > 0
Next PI
Set PT = Nothing
End Sub
【问题讨论】:
-
请将您的代码放入代码标签中。
-
抱歉,已标记代码。
标签: excel filter pivot-table vba