使用记录宏排列透视列

时间:2016-09-16 15:22:49

标签: excel excel-vba macros record vba

我是一个宏菜鸟,但是我有很多记录宏和操作代码进行调整的经验。今天我有一个需要解决的问题。我试图记录一个宏来重新组织枢轴内的列的顺序。我在数据透视表字段窗体中移动值时尝试录制宏,并单击“数据透视表字段”部分中的“值”字段并选择“#34;移至结束"”。两者都没有用,而且我还有一个错误,"运行时错误' 5':无效的过程调用或参数。以下是录音中的代码供参考。

如何使用宏录制或宏观录制正确重组数据透视图的列?

谢谢, 史蒂夫

Sub PivotColumnArrange()
'
' PivotColumnArrange Macro
' Arranges Pivot Columns In Proper Order
    Range("F3").Select
    ActiveSheet.PivotTables("PivotTable2").AddDataField ActiveSheet.PivotTables( _
        "PivotTable2").PivotFields("Sum of AverageCPC"), "Sum of AverageCPC", xlSum
    ActiveSheet.PivotTables("PivotTable2").AddDataField ActiveSheet.PivotTables( _
        "PivotTable2").PivotFields("Sum of AveragePos."), "Sum of AveragePos.", xlSum
    ActiveSheet.PivotTables("PivotTable2").AddDataField ActiveSheet.PivotTables( _
        "PivotTable2").PivotFields("Sum of Conversions"), "Sum of Conversions", xlSum
    ActiveSheet.PivotTables("PivotTable2").AddDataField ActiveSheet.PivotTables( _
        "PivotTable2").PivotFields("Sum of CPA "), "Sum of CPA ", xlSum
    ActiveSheet.PivotTables("PivotTable2").AddDataField ActiveSheet.PivotTables( _
        "PivotTable2").PivotFields("Sum of CPA "), "Sum of CPA ", xlSum
    ActiveSheet.PivotTables("PivotTable2").AddDataField ActiveSheet.PivotTables( _
        "PivotTable2").PivotFields("Sum of CVR "), "Sum of CVR ", xlSum
    ActiveSheet.PivotTables("PivotTable2").AddDataField ActiveSheet.PivotTables( _
        "PivotTable2").PivotFields("Sum of CTR"), "Sum of CTR", xlSum
End Sub

1 个答案:

答案 0 :(得分:0)

我看到两个可能的问题。看起来您指的是值字段名称,例如,当您指的是“CPA”时,“CPA总和”。此外,您的代码创建了相同名称的字段,即“CPA总和”使用两次。

尝试更改此内容:

ActiveSheet.PivotTables("PivotTable2").AddDataField ActiveSheet.PivotTables( _
    "PivotTable2").PivotFields("Sum of CPA "), "Sum of CPA ", xlSum
ActiveSheet.PivotTables("PivotTable2").AddDataField ActiveSheet.PivotTables( _
    "PivotTable2").PivotFields("Sum of CPA "), "Sum of CPA ", xlSum

到此:

ActiveSheet.PivotTables("PivotTable2").AddDataField ActiveSheet.PivotTables( _
    "PivotTable2").PivotFields("CPA"), "Sum of CPA ", xlSum
ActiveSheet.PivotTables("PivotTable2").AddDataField ActiveSheet.PivotTables( _
    "PivotTable2").PivotFields("CPA"), "Sum of CPA2 ", xlSum

我猜测源字段名称(“CPA”),也许第二个实际上是另一个操作,如平均值(或者只是一个意外)。