Excel VBA - 如何确定数据透视表中的行标签字段数?

And*_*ohr 4 excel vba pivot-table excel-vba excel-2010

我有一个Excel 2010数据透视表,最初包含3个行标签字段.

我需要创建一个宏,将某个字段添加为数据透视表中的最低行标签字段.(由于我不打算进入的原因,用户无法以正常方式自行添加此字段.)

但是,当用户运行此宏时,他们可能已添加或删除了某些行标签.

当我在数据透视表的最低位置添加一个字段(已经选择了3个行标签)时,宏录制器会给我这个:

With ActiveSheet.PivotTables("MyPivotTable").PivotFields("MyNewField")
    .Orientation = xlRowField
    .Position = 4
End With
Run Code Online (Sandbox Code Playgroud)

如果用户添加或删除了某些项目,则此位置编号4不正确.如何将正确的位置编号传递给我的代码?

试图瞄准高使用率Position = 99给我以下错误:

无法设置PivotField类的Position属性

有什么想法吗?

Sea*_*anC 5

PivotFields 有一个伯爵财产.

With ActiveSheet.PivotTables("MyPivotTable").PivotFields("MyNewField")
    .Orientation = xlRowField
    .Position = ActiveSheet.PivotTables("MyPivotTable").PivotFields.Count + 1
End With
Run Code Online (Sandbox Code Playgroud)

此外,PivotFields您可以替换其他选择来代替其他计数:

  • ColumnFields
  • 数据域
  • HiddenFields
  • PageFields
  • RowFields
  • VisibleFields