【问题标题】:Issue Setting Pivot Table Filter Using Excel VBA使用 Excel VBA 设置数据透视表过滤器的问题
【发布时间】:2018-10-22 08:33:06
【问题描述】:

社区,

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

该字段确实存在,具有该名称(也尝试了其他名称)。 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"

【问题讨论】:

  • 这个解释不是很清楚。请您添加更多信息。
  • 不确定您真正想要什么,但您考虑过条件格式吗?只接受范围或整数内的数字或接受文本或特定单词的单元格......数据验证也是一种可能性......
  • 问题是命令 'Set pf01 = pvt.PivotFields("Q_INCL") ' 抛出错误 RT...1004 :“无法获取数据透视表类的数据透视字段”。好像该字段不存在..
  • 您发布的代码对我来说没有问题。我用一个虚拟数据表试过了。您能否发送您的数据透视表的屏幕截图,也许只是它的左上角?
  • 另外,我相信你的字段“Q_INCL”必须是一个过滤字段。如果是行字段,我认为您可能无法以这种方式实现过滤。

标签: excel vba


【解决方案1】:

我测试了一些东西并能够重现您的问题。 您需要将字段“Q_INCL”作为过滤字段,以便您的过滤与您提供的代码一起使用。

如果它是一个行字段,您将收到您发布的错误。

【讨论】:

    【解决方案2】:

    这行得通..,看起来这部分 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]")
    

    【讨论】:

      猜你喜欢
      • 2012-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-07
      • 1970-01-01
      • 2016-12-24
      • 1970-01-01
      相关资源
      最近更新 更多