【问题标题】:Arrange Pivot Columns Using Record Macro使用记录宏排列数据透视列
【发布时间】:2016-09-16 15:22:48
【问题描述】:

我是一个宏菜鸟,但是我在录制宏和操作代码以进行调整方面有相当多的经验。今天我有一个问题需要解决。我正在尝试记录一个宏来重新组织数据透视表中列的顺序。我尝试在数据透视表字段表单中移动值时录制宏,以及单击数据透视表字段部分中的值字段并选择“移动到结束”。两者都不起作用,我得到一个错误,“运行时错误'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

【问题讨论】:

    标签: excel macros record vba


    【解决方案1】:

    我看到两个可能的问题。当您应该指的是“CPA”时,您似乎指的是 Value 字段名称,例如“Sum of 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”),也许第二个实际上是另一个操作,例如 Average(或者只是一个意外)。

    【讨论】:

    • 最好先Dim PvtTbl as PivotTable,然后Set PvtTbl = ActiveSheet.PivotTables("PivotTable2"),然后剩下的就清楚了,比如PvtTbl.AddDataField PvtTbl.PivotFields("CPA"), "Sum of CPA ", xlSum
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-12
    • 2022-01-04
    • 1970-01-01
    • 2020-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多