Страницы: 1
RSS
VBA. Получить массив значений поля из модели данных PP.
 
Уважаемые форумчане, добрый день!
Возникла необходимость сохранения отображаемых в сводной таблице данных в отдельный файл для каждого значения одного из фильтров.
Сложность в том, что это поле не выводится в саму сводную таблицу, поэтому получить массив всех значений с помощью метода .PivotItems нельзя.
Сейчас массив значений просто берется из другой таблицы: citiesLst = Range("cities[Город]").
Можно ли как-то этот массив получить именно из данных?
Для примера "сводную" копирую на отдельный лист:
Код
Sub test()
    Application.ScreenUpdating = False
    citiesLst = Range("cities[Город]")
    Set pt = Worksheets("pt").PivotTables("pivotT")
    For Each x In citiesLst
        pt.PivotFields("[data].[Город].[Город]").CurrentPageName = "[data].[Город].&[" & x & "]"
        pt.TableRange1.Copy
        Set nwSheet = Worksheets.Add
        nwSheet.Name = x
        nwSheet.Paste
    Next x
    Application.ScreenUpdating = True
End Sub
Изменено: surkenny - 24.03.2022 13:22:56
 
surkenny, приветствую
Не пробовал и не уверен, но думаю, что нужно ковырять кэш, а именно PivotCache.SourceData
VBA Guide to Pivot Tables (не факт, что тут есть ответ, но справка хорошая)
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous, благодарю, как время найдется - поковыряюсь :)
Страницы: 1
Наверх