使用Excel VBA设置数据透视表筛选器的问题

时间:2018-10-22 08:33:06

标签: excel vba

社区

我正在尝试“默认”某些过滤,以便用户节省时间/减少某些重复报告的错误,但坚持设置数据透视字段“ RT ... 1004:”无法获取数据透视表类的PivotFields属性“。

该字段确实存在,并且具有该名称(也尝试过其他名称)。 PT本身引用excel中的数据表。

看看网络上的示例,我在下面的代码中确实看不到错误,但显然存在。如果我注释掉“ Set pf01”和pf01.CurrentPage,该代码确实起作用,然后清除所有过滤器,以便对数据透视表的引用正确。

Sub TestSetpvt()

Dim wks As Worksheet
Dim pvt As PivotTable
Dim pf01 As PivotField

Set wks = ActiveSheet
Set pvt = wks.PivotTables("RPT_OTH")
Set pf01 = pvt.PivotFields("Q_INCL")

pvt.ClearAllFilters

pf01.CurrentPage = "Y"

2 个答案:

答案 0 :(得分:0)

我测试了几件事,并能够重现您的问题。 您需要将字段“ Q_INCL”作为过滤器字段,才能使用您提供的代码进行过滤。

如果它是行字段,则将得到您发布的错误。 enter image description here

答案 1 :(得分:0)

这有效..,看起来这部分excel / excel vba比较复杂,然后我希望它是:-/

Dim wks As Worksheet
Dim pvt As PivotTable
Dim pf01 As PivotField

Set wks = ActiveSheet
Set pvt = wks.PivotTables("RPT_OTH")
Set pf01 = pvt.PivotFields("[TBL_TCB].[Q_INCL].[Q_INCL]")

pf01.VisibleItemsList = Array("[TBL_TCB].[Q_INCL].&[Y]")