Filtrar una tabla dinámica basada en un rango variable

Mi objetivo es filtrar una tabla dinámica utilizando un rango en otra hoja. Este rango extrae datos de una tercera hoja, que es el volcado de datos que inicia una gran cantidad de fórmulas y cambia cada vez que se usa.

Tengo el siguiente código, pero lo que puedo ver haciendo es ejecutar a través de cada campo de tabla dinámica, compararlo con el rango y luego quitar el filtro. Tengo 32,000 campos que deben verificarse, por lo que la macro actual es demasiado lenta para usar.

¿Alguien podría ayudarme a arreglar el código para que solo se filtre en función de los valores en el rango que no están en blanco?

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

Respuestas a la pregunta(1)

Su respuesta a la pregunta