Das Durchlaufen von Berichtsfiltern zum Ändern der Sichtbarkeit funktioniert nicht

Ich versuche, einen Berichtsfilter auszuwählen, in diesem Fall Kanada. Das heißt, der Rest muss unsichtbar gemacht werden. Dieser Code funktioniert ohne Probleme:

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

Ich versuche jedoch, mich darauf vorzubereiten, wann wir andere Länder zu unserer Pivot-Tabelle "Epidemiologie" hinzufügen, also habe ich versucht, eine for-Schleife zu haben. Dieser Code funktioniert nicht:

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

Es gibt mir einen Fehler auf demPi.Visible = False Linie. Der Fehler, den ich bekomme, istRun-time error '1004': Unable to set the Visible property of the PivotItem class

Warum funktioniert es nicht in einer for-Schleife ?!

Frustrierenderweise verwenden alle Beispiele, die ich online finde, eine ähnliche Syntax. (Einige verwenden einen Index, aber ich habe das versucht und den gleichen Fehler erhalten.)

Antworten auf die Frage(2)

Ihre Antwort auf die Frage