Фильтруйте сводную таблицу, используя VBA, если фильтр вложенный, а не верхний уровень - PullRequest
1 голос
/ 13 июня 2019

Я не могу отфильтровать сводную таблицу с помощью VBA, когда фильтр является подуровнем основного элемента фильтра.Я получаю ошибку времени выполнения «1004» Ошибка приложения или объекта

Я могу сделать это для основного уровня фильтра, но нет, если в исходном элементе фильтра есть дополнительные подкатегории.

Sub Pull_Volume()

Dim pt As PivotTable
Dim main As Worksheet
Dim dte As String
Dim dteFld As PivotField

Set main = ThisWorkbook.Sheets("Sheet1")
Set pt = main.PivotTables("PivotTable$A$1")
Set dteFld = pt.PivotFields("[Date].[Hierarchy].[Quarter]")

dte = ("[Date].[Hierarchy].&[2019-Q2]")

With dteFld
    .CurrentPageName = dte
End With

End Sub

В строке 15 выдается

Ошибка времени выполнения '1004' Ошибка приложения или объекта.

Если установить строку 10 в:

Set dteFld = pt.PivotFields("[Date].[Hierarchy].[Year]")

И строка 12 в:

dte = ("[Date].[Hierarchy].&[2019]")

Это работает, и я фильтрую на 2019. Если я пытаюсь фильтровать на Q2, который является одним из 4 вложенных подфильтров в 2019 (Q1, Q2, Q3, Q4) Я получаю ошибку.Я предполагаю, что мне нужно выполнить какую-то одновременную фильтрацию в 2019, а затем в 2019-Q2 или использовать какой-то массив, но это немного за мной.

...