Упорядочить столбцы с использованием макроса записи

Я макрос noob, однако у меня довольно много опыта записи макросов и манипулирования кодом для внесения корректировок. Сегодня у меня есть проблема, которую мне нужно решить. Я пытаюсь записать макрос, чтобы реорганизовать порядок столбцов внутри стержня. Я попытался записать макрос, пока я перемещаю значения вокруг в форме полей сводной таблицы, а также щелкнув поле «Значение» в разделе «Сводные поля» и выбрав «Переместить в конец». Оба не работают, и я получаю сообщение с ошибкой «Ошибка времени выполнения» 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 

    Я вижу две возможные проблемы. Похоже, вы ссылаетесь на имена полей Value, например, «Сумма 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»), и, возможно, второе – это другая операция, например Average (или просто авария).

    Давайте будем гением компьютера.