Приведенный ниже код должен помочь вам начать. Если у вас есть какие-либо вопросы, просто кричите.

ель - отфильтровать сводную таблицу, используя диапазон на другом листе. Этот диапазон извлекает данные с 3-го листа, который представляет собой дамп данных, который отбирает целый ряд формул и изменяется каждый раз, когда он используется.

У меня есть код ниже, но я вижу, как он выполняет все поля сводной таблицы, сравнивает его с диапазоном и затем удаляет фильтр. У меня есть 32 000 полей, которые необходимо проверить, чтобы текущий макрос был слишком медленным для использования.

Может ли кто-нибудь помочь мне исправить код, чтобы он фильтровал только по значениям в диапазоне, которые не являются пустыми?

Sub PT()
Dim PT As PivotTable
Dim PI As PivotItem
Set PT = Sheets("Pivot_Sheet").PivotTables("PivotTable2")
With Sheets("Pivot_Sheet").PivotTables("PivotTable2").PivotFields("Product")
.ClearAllFilters
End With
For Each PI In PT.PivotFields("Product").PivotItems
PI.Visible = WorksheetFunction.CountIf(Sheets("Sheet1").Range("J2:J100"),
PI.Name) > 0
Next PI
Set PT = Nothing
End Sub

Ответы на вопрос(1)

Ваш ответ на вопрос