如何使用VBA将一列移动到数据透视表中的末尾?

时间:2013-10-21 03:05:06

标签: vba

我创建了一个pirvot表,但是colunm顺序不是我想要的。我想将一列移到右端。我可以在Excel中完成,但不知道如何使用VBA。

在Excel中,可以这样做 - 激活要移动的列标题,单击右键,选择“移动”,“移动” - “结束”。

录制宏 - 录制宏时,它只显示确切的位置,就像, ActiveSheet.PivotTables(“PivotTable16”)。PivotFields(“wk”)。PivotItems(“#VALUE!”)_         .Position = 12 但我想在其他文件中使用宏,也许最终位置不是12.然后宏不能使用。

希望能在这里获得帮助。如何通过VBA将colunm移动到最后?感谢。

2 个答案:

答案 0 :(得分:1)

我希望我能帮到你。

你可以通过

获得最终位置

ActiveSheet.PivotTables("PivotTable1").PivotFields("whatever").PivotItems.count

基本上它会返回标签的项目数

<强>被修改

所以你可以这样做

Dim total as Integer 

total = ActiveSheet.PivotTables("PivotTable1").PivotFields("whatever").PivotItems.count

ActiveSheet.PivotTables("PivotTable1").PivotFields("whatever").PivotItems("whatever").position = total

答案 1 :(得分:0)

随便给任何遇到此问题的人留言并遇到我所做的同样问题。如果在你的宏中你隐藏了字段,它会给你一个错误。在设置数据透视表时,不要将此代码用作最后一项操作。使用此代码,让它移动到底部位置,然后让您的代码隐藏您的字段。如果您先隐藏字段,它会计算隐藏字段,然后尝试将其移动到数据透视表之外并导致错误。