2014-09-14 6 views
0

Я пытаюсь создать сводную таблицу с помощью макроса vba. Я могу создать начальную сводную таблицу (изображение 1), но когда я пытаюсь изменить компоновку (image2), я получаю сообщение об ошибке.Pivot Table - макрос VBA

Aha! Понял!

.Orientation = xlRowField 

это ключ и использование 1-n для количества событий.

'Setting Fields 
With pt 
With .PivotFields("ID") 
.Orientation = xlRowField 
.Position = 1 
End With 

'set column field 
With .PivotFields("WorkTime") 
.Orientation = xlRowField 
.Function = xlSum 
.Position = 2 
End With 

'set column field 
With .PivotFields("OvertimePeriod") 
.Orientation = xlRowField 
.Function = xlSum 
.Position = 3 
End With 

With .PivotFields("Sick leave") 
.Orientation = xlRowField 
.Function = xlSum 
.Position = 4 
End With 

With .PivotFields("Vacation") 
.Orientation = xlRowField 
.Function = xlSum 
.Position = 5 
End With 

Они не все попадают в линию, как видно на изображении 2!

Любые предложения были бы весьма признательны. Спасибо заранее.

J

enter image description here

+1

Вы имеете в виду поле с индексом -1. Это не сработает. Попробуйте использовать имя поля в кавычках. –

+0

@ DougGlancy спасибо за отзыв. Похоже, ты наткнулся на суть. У меня 4 поля, и все они должны выровняться поверх каждого другого. – JDS

+0

@DougGlancy oops. Я думаю, что я ищу переменные ориентации и позиции, чтобы это произошло ... Я бы сохранил все переменные, используя «ориентацию»: xlRowField и позиции: 1, 2, 3, 4? Я попробую сыграть с этими – JDS

ответ

0

попробуйте записать его записи макросов в Excel. click the gif image for the steps