2015-04-28 2 views
1

Я работаю над макросом, чтобы автоматически расширять определенное поле в сводной таблице. У меня есть макрос, чтобы работать, как я этого хочу.Параметры динамического .PivotFields

Есть ли способ сделать для него определенную часть переменной, так что, поскольку изменения месяца, которые необходимо развернуть, я могу быстро обновить или создать пользовательскую форму для ее обновления?

Вот код, как он стоит:

For Each pt In ws1.PivotTables 
pt.PivotFields(_ 
    "[Date].[ByCalendar].[Calendar Month]").PivotItems(_ 
    "[Date].[ByCalendar].[Calendar Month].&[2015]&[4]").DrilledDown = True 
Next pt 

той части Я хочу, чтобы установить в качестве переменной .&[2015]&[4] мне нужно, чтобы быть в состоянии изменить его быстро, чтобы сказать .&[2015]&[5] и т.д., не нужно всегда идти в кода и вручную изменить эту часть. У меня около 20 таблиц, которые обновляются.

+0

Вы хотите, чтобы он обновлялся каждый месяц, поэтому [2015] и [4] изменится на [2015] и [5] в начале мая? – Sam

ответ

0

Если вы хотите, чтобы он обновлялся на каждый новый месяц. Вы хотите изменить

"[Date].[ByCalendar].[Calendar Month].&[2015]&[4]" 

в

"[Date].[ByCalendar].[Calendar Month].&[" & year(now) & "]&[" & month(now) & "]" 

становится "сейчас" от системных часов. Поэтому, если вы хотите протестировать его, измените дату на системных часах, а затем обновите ее.