我有一个Excel 2010数据透视表,最初包含3个行标签字段 .
我需要创建一个宏,将某个字段添加为数据透视表中的最低行标签字段 . (由于我不打算进入的原因,用户无法以正常方式自行添加此字段 . )
但是,当用户运行此宏时,他们可能已添加或删除了某些行标签 .
当我在数据透视表的最低位置添加一个字段(已经选择了3个行标签)时,宏录制器会给我这个:
With ActiveSheet.PivotTables("MyPivotTable").PivotFields("MyNewField")
.Orientation = xlRowField
.Position = 4
End With
如果用户添加或删除了某些项目,则此位置编号4不正确 . 如何将正确的位置编号传递给我的代码?
尝试使用 Position = 99
瞄准高,给出了以下错误:
无法设置PivotField类的Position属性
有什么想法吗?
4 回答
PivotFields
有一个count属性 .此外,您可以替换其他选项来代替
PivotFields
,以便为您提供其他计数:ColumnFields
DataFields
HiddenFields
PageFields
RowFields
VisibleFields
试着完全抛弃
.Position = 4
字符串,即:蛮力解决方案:
如果手头的任务是计算pivottable中可能存在的行域数,您应该享受以下代码:
这将给出枢轴的计数 . 但是,这将计算 Headers 行以及总行数(如果总计应用于数据透视表 . )因此,您需要根据您的情况减去1或2 .
An excelent description of how to refer to pivottable ranges can be found here.