У меня есть ОЛАП - в котором надо менять месяц + год в зависимости от текущего.
Вот текст, который записал макрос при изменении ОЛАПа:
Код |
---|
ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields( _
"[Календарь].[Year - Month - Date].[Year]").VisibleItemsList = Array( _
"[Календарь].[Year - Month - Date].[Year].&[2000-01-01T00:00:00]", _
"[Календарь].[Year - Month - Date].[Year].&[2001-01-01T00:00:00]", _
"[Календарь].[Year - Month - Date].[Year].&[2002-01-01T00:00:00]", _
"[Календарь].[Year - Month - Date].[Year].&[2003-01-01T00:00:00]", _
"[Календарь].[Year - Month - Date].[Year].&[2004-01-01T00:00:00]", _
"[Календарь].[Year - Month - Date].[Year].&[2005-01-01T00:00:00]", _
"[Календарь].[Year - Month - Date].[Year].&[2006-01-01T00:00:00]", _
"[Календарь].[Year - Month - Date].[Year].&[2007-01-01T00:00:00]", _
"[Календарь].[Year - Month - Date].[Year].&[2008-01-01T00:00:00]", _
"[Календарь].[Year - Month - Date].[Year].&[2009-01-01T00:00:00]", _
"[Календарь].[Year - Month - Date].[Year].&[2010-01-01T00:00:00]", _
"[Календарь].[Year - Month - Date].[Year].&[2011-01-01T00:00:00]", _
"[Календарь].[Year - Month - Date].[Year].&[2012-01-01T00:00:00]", _
"[Календарь].[Year - Month - Date].[Year].&[2013-01-01T00:00:00]", _
"[Календарь].[Year - Month - Date].[Year].&[2014-01-01T00:00:00]")
ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields( _
"[Календарь].[Year - Month - Date].[Month]").VisibleItemsList = Array( _
"[Календарь].[Year - Month - Date].[Month].&[2015-01-01T00:00:00]", _
"[Календарь].[Year - Month - Date].[Month].&[2015-02-01T00:00:00]")
ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields( _
"[Календарь].[Year - Month - Date].[Day Of Month]").VisibleItemsList = Array( __) |
Соответственно если будет март 2016 года - он должен выглядеть по-другому...
Код |
---|
ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields( _
"[Календарь].[Year - Month - Date].[Year]").VisibleItemsList = Array( _
"[Календарь].[Year - Month - Date].[Year].&[2000-01-01T00:00:00]", _
"[Календарь].[Year - Month - Date].[Year].&[2001-01-01T00:00:00]", _
"[Календарь].[Year - Month - Date].[Year].&[2002-01-01T00:00:00]", _
"[Календарь].[Year - Month - Date].[Year].&[2003-01-01T00:00:00]", _
"[Календарь].[Year - Month - Date].[Year].&[2004-01-01T00:00:00]", _
"[Календарь].[Year - Month - Date].[Year].&[2005-01-01T00:00:00]", _
"[Календарь].[Year - Month - Date].[Year].&[2006-01-01T00:00:00]", _
"[Календарь].[Year - Month - Date].[Year].&[2007-01-01T00:00:00]", _
"[Календарь].[Year - Month - Date].[Year].&[2008-01-01T00:00:00]", _
"[Календарь].[Year - Month - Date].[Year].&[2009-01-01T00:00:00]", _
"[Календарь].[Year - Month - Date].[Year].&[2010-01-01T00:00:00]", _
"[Календарь].[Year - Month - Date].[Year].&[2011-01-01T00:00:00]", _
"[Календарь].[Year - Month - Date].[Year].&[2012-01-01T00:00:00]", _
"[Календарь].[Year - Month - Date].[Year].&[2013-01-01T00:00:00]", _
"[Календарь].[Year - Month - Date].[Year].&[2014-01-01T00:00:00]", _
"[Календарь].[Year - Month - Date].[Year].&[2015-01-01T00:00:00]")
ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields( _
"[Календарь].[Year - Month - Date].[Month]").VisibleItemsList = Array( _
"[Календарь].[Year - Month - Date].[Month].&[2016-01-01T00:00:00]", _
"[Календарь].[Year - Month - Date].[Month].&[2016-02-01T00:00:00]", _
"[Календарь].[Year - Month - Date].[Month].&[2016-03-01T00:00:00]")
ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields( _
"[Календарь].[Year - Month - Date].[Day Of Month]").VisibleItemsList = Array( _
"") |
Я долго думал, как это все менять в макросе, но в итоге сделал текст в виде формул в ячейках. Т.е. последний вариант текста у меня генерируется формулами. Вопрос - как теперь вставить его обратно в макрос и выполнить...
Может конечно я и перестарался, возможно это можно и в макросе все изменить, но не знаю как =)