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).

Respuestas a la pregunta(2)

Su respuesta a la pregunta