Мне нужно автоматически применить кучу фильтров к сводной таблице и затем сохранить результаты.Проблема в том, что код, который мне удалось написать, работает нормально для обычной таблицы Pivot, но он не работает, когда моя таблица Pivot основана на модели данных Excel.
Я попытался запустить макрос-рекордер дляпосмотрите, какие изменения происходят, когда моя сводная таблица основана на модели данных, но я все еще не могу заставить код работать.
'' 'Этот код отлично работает для обычных сводных таблиц
Sub FilterTest1()
Dim MonthRng As Range, YearRng As Range, OEMRng As Range, cell As Range
Dim m As Range, y As Range, c As Range
Set YearRng = Range("E1:I1")
Set MonthRng = Range("E2:P2")
Set OEMRng = Range("E3:AE3")
For Each y In YearRng
For Each m In MonthRng
For Each c In OEMRng
ActiveSheet.PivotTables("PivotTable1").PivotFields("SHIP_DATE (Year)").CurrentPage = y.Value
ActiveSheet.PivotTables("PivotTable1").PivotFields("SHIP_DATE (Month)").CurrentPage = m.Value
ActiveSheet.PivotTables("PivotTable1").PivotFields("CUSTOMER_NAME").CurrentPage = c.Value
Next c
Next m
Next y
End Sub
'' 'И это то, что я получаю, когда запускаю макро-рекордер, чтобы увидеть, как выглядят разные вещи, когда моя сводная таблица основана на модели данных.
Sub test()
ActiveSheet.PivotTables("PivotTable1").PivotFields( _
"[ReadytoAnalyze 2].SHIP_DATE (Year)].[SHIP_DATE (Year)]"). _
VisibleItemsList = Array("[ReadytoAnalyze 2].[SHIP_DATE (Year)].&[2014]")
End Sub
'' 'Как видите, вместо значения, которое будет жестко задано как 2014, я хочу передать диапазон из нескольких значений одно за другим.И, как я уже упоминал, первый фрагмент кода работает для обычной сводной таблицы, но нет, когда моя сводная таблица основана на модели данных.Мне кажется, я действительно близок к тому, чтобы найти решение, но я был бы очень признателен за любую помощь.