如下是我目前使用的过滤数据透视表,但它需要很长的时间,我使用这种格式的多个数据透视表。所以,我想知道,如果有人知道如何使这更有效,更快?
Dim FilterArr() As Variant
Dim PTItm As PivotItem
FiterArr = Array("10000000", "100000001") 'Example, my array has more than 80 numbers can't show due to confidentiality
For Each PTItm In irccTable.PivotFields("Cost Center").PivotItems
If Not IsError(Application.Match(PTItm.Caption, FiterArrIrcc, 0)) Then ' check if current item is not in the filter array
PTItm.Visible = True
Else
PTItm.Visible = False
End If
Next PTItm
我什么都没做,不知道该往哪个方向走。
1条答案
按热度按时间rjee0c151#
所以Application.ScreenUpdating = False,将我的运行时间减少了一半;然而,我只是在excel vba之外创建了另一个列在原始数据表中,其中包含一个分类数字,然后将不同的数字分组在不同的类别下,这样的宏只需要通过一个无限小的数字列表来过滤。感谢@Evil Blue Monkey和@Tim威廉姆斯的帮助!