Excel vba:隐藏数据透视表中的计算字段的错误

Pat*_*rez 1 excel vba pivot-table excel-vba

我在数据透视表中写了几个Subs来显示/隐藏字段.现在我尝试使用计算字段执行相同操作,但是在隐藏它时会出错.我从录音机中取出了我的代码,录音机的代码也在最后一行停了下来.我搜索了错误信息,没有严重的结果.

Sub PrRemove()
    'remove PR
    Dim pt As PivotTable
    Set pt = ActiveSheet.PivotTables("MyPivot")
    pt.PivotFields("MyField").Orientation = xlHidden   '<- here is the error
End Sub
Run Code Online (Sandbox Code Playgroud)

如果MyField是普通字段(不是计算字段),则相同的代码可以正常工作.
我正在使用Excel 2007 SP2.
任何线索?

编辑于2010年6月17日:我也尝试使用pt.DataFields而不是pt.PivotFields,行为完全相同.错误消息显示"无法设置PivotField类的方向".

小智 5

经过多次拔毛我找到了解决方法.如果添加多个数据透视表字段(计算或其他),则Excel会创建一个名为"值"的分组字段.您可以将PivotField的方向属性("值")设置为xlHidden,并为两个字段添加项目符号.因此,如果要删除计算字段,只需添加一个非计算字段,将PivotField("Values").orientation设置为xlHidden,即可完成.

没人说它会很漂亮......


小智 5

With ActiveSheet.PivotTables("PivottableName").PivotFields("Values")
    .PivotItems("CalcFieldName").Visible = False
End With
Run Code Online (Sandbox Code Playgroud)

  • 请不要发布仅代码的答案。解释它是如何工作的或为什么它是一个解决方案。否则,一旦您拥有所需的声誉,就更适合成为评论。http://stackoverflow.com/help/whats-reputation (3认同)