过滤数据build模器中的数据

我有一个连接到数据build模器的许多数据透视表的工作表。 源数据基于另一个工作表中的范围。 我使用数据build模器的原因是因为我试图利用它的不同计数function。

我想要做的是一次过滤所有的数据透视表。 我尝试通过VBA(请参阅下面的代码),但我不能像太多的生产线和代码错误。 这个想法是在30岁以下取消任何数据。

Dim pt As PivotTable Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets ws.Activate For Each pt In ActiveSheet.PivotTables pt.PivotFields("[Range1].[Time Till Cancellation]_ .[Time Till Cancellation]").VisibleItemsList _ = Array("[Range1].[Time Till Cancellation].&[]", _ "[Range1].[Time Till Cancellation].&[31]", _ "[Range1].[Time Till Cancellation].&[32]", _ "[Range1].[Time Till Cancellation].&[33]", _ "[Range1].[Time Till Cancellation].&[34]", _ "[Range1].[Time Till Cancellation].&[35]", _ "[Range1].[Time Till Cancellation].&[36]", _ "[Range1].[Time Till Cancellation].&[37]", _ "[Range1].[Time Till Cancellation].&[38]", _ "[Range1].[Time Till Cancellation].&[39]", _ "[Range1].[Time Till Cancellation].&[40]", _ "[Range1].[Time Till Cancellation].&[41]", _ "[Range1].[Time Till Cancellation].&[42]", _ "[Range1].[Time Till Cancellation].&[43]", _ "[Range1].[Time Till Cancellation].&[44]", _ "[Range1].[Time Till Cancellation].&[45]", _ "[Range1].[Time Till Cancellation].&[46]", _ "[Range1].[Time Till Cancellation].&[47]", _ "[Range1].[Time Till Cancellation].&[48]", _ "[Range1].[Time Till Cancellation].&[49]", _ "[Range1].[Time Till Cancellation].&[50]", _ "[Range1].[Time Till Cancellation].&[51]", _ (...and so on up to 150) 

我的问题是 –

我可以通过数据build模器中的一个function来做到这一点,即一些types的SELECT WHERE语句; 要么

有没有更容易的方法来写在VBA所以我没有太多的代码行(是的,我可以将这些行连接成一个单一的行,但我只是想知道是否有一个更清洁的方式)

非常感谢,

克里斯