2016-09-16 2 views
0

Я макрос noob, однако у меня довольно много опыта записи макросов и манипулирования кодом для внесения корректировок. Сегодня у меня есть проблема, которую мне нужно решить. Я пытаюсь записать макрос, чтобы реорганизовать порядок столбцов внутри стержня. Я попытался записать макрос, пока я перемещаю значения вокруг в форме полей сводной таблицы, а также щелкнув поле «Значение» в разделе «Сводные поля» и выбрав «Переместить в конец». Оба не работают, и я получаю сообщение с ошибкой «Ошибка времени выполнения» 5: Недопустимый вызов процедуры или аргумент. Ниже приведен код из записи для справки.Упорядочить столбцы Pivot с использованием макроса записи

Как правильно реорганизовать столбцы поворота с помощью макроса или записи макросов?

Спасибо, Стив


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 

ответ

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 

Я предполагаю, что на имя поля источника («СОН») и, возможно, второй один на самом деле имел в виду, чтобы быть другим как Средний (или был просто случайностью).

+0

не лучше первого 'Dim PvtTbl в качестве сводной таблицы', затем' Set PvtTbl = ActiveSheet.PivotTables ("PivotTable2") ', а затем остальное понятно, например' PvtTbl.AddDataField PvtTbl.PivotFields («CPA») «Сумма CPA», xlSum' –

Смежные вопросы