El bucle a través de filtros de informe para cambiar la visibilidad no funciona
Estoy tratando de seleccionar un filtro de informe, en este caso Canadá. Eso significa que el resto debe hacerse invisible. Este código funciona sin problemas:
Public Sub FilterPivotTable()
With ActiveSheet.PivotTables("Epidemiology").PivotFields("COUNTRY")
.PivotItems("Canada").Visible = True
.PivotItems("USA").Visible = False
.PivotItems("Germany").Visible = False
.PivotItems("France").Visible = False
End With
End Sub
Sin embargo, estoy tratando de prepararme para cuando agreguemos otros países a nuestra tabla dinámica de "Epidemiología", por lo que traté de tener un bucle for. Este código no funciona:
With ActiveSheet.PivotTables("Epidemiology").PivotFields("COUNTRY")
.PivotItems("Canada").Visible = True
For Each Pi In .PivotItems
If Pi.Value = "CANADA" Then
Pi.Visible = True
Else
Pi.Visible = False
End If
Next Pi
End With
Me da un error en laPi.Visible = False
línea. El error que me sale esRun-time error '1004': Unable to set the Visible property of the PivotItem class
¿Por qué no funciona dentro de un bucle for?
Frustrantemente, todos los ejemplos que encuentro en línea usan una sintaxis similar. (Algunos usan un índice, pero lo intenté y obtuve el mismo error).