У меня есть куча (14) сводных таблиц на двух листах (по 7 на каждом листе).
У меня есть кнопка обновления на листе, которая обновляет все сводные таблицы, используя следующий код:
Sub Refresh_Pivots()
Dim pt As PivotTable
Dim WS As Worksheet
For Each WS In ThisWorkbook.Worksheets
For Each pt In WS.PivotTables
pt.RefreshTable
Next pt
Next WS
End Sub
Все сводные таблицы имеют схожую структуру, и во всех сводных таблицах есть одно поле под названием «Месяц». Мне нужно отфильтровать "(пусто)" из сводного поля "Месяц" во всех сводных таблицах, когда я нажимаю Обновить.
Для этого я добавил эту строку под циклом Nested For Loop после pt.RefreshTable -
pt.pf("month").pi("(blank)").ShowDetail = False
Итак, измененный код:
Sub Refresh Pivots ()
Dim pt As PivotTable
Dim pf As PivotField
Dim pi As PivotItem
Dim WS As Worksheet
For Each WS In ThisWorkbook.Worksheets
For Each pt In WS.PivotTables
pt.RefreshTable
pt.pf("month").pi("(blank)").ShowDetail = False
Next pt
Next WS
End Sub
Но я получаю ошибку компиляции. Я не могу понять, почему. Я относительно новичок в VBA, поэтому прошу прощения, если это глупый вопрос.
Кроме того, мне нужны эти пробелы в данных, просто нужно отфильтровать их из сводных таблиц. Благодарю.