Warum löst dieser PivotItem.Visible-Aufruf einen TypeMismatch-Fehler aus?

Das verwirrt uns. Ich habe eine Standard-Pivot-Tabelle mit einem Berichtsfilter, mit dem mehrere Elemente ausgewählt werden können. Ich kann die ausgewählten Elemente im Berichtsfilter abrufen mit:

Dim pi As PivotItem
For Each pi In PivotTables("MyPivot").PivotFields("MyField").PivotItems
    If pi.Visible Then
        Debug.Print pi.Value
    End If
Next

Einfach. Mein Kollege verfügt über eine Standard-Pivot-Tabelle mit einem Berichtsfilter, mit dem mehrere Elemente ausgewählt werden können. Er versucht, ausgewählte Elemente im Berichtsfilter mit zu erhaltender gleiche Code:

Dim pi As PivotItem
For Each pi In PivotTables("HisPivot").PivotFields("HisField").PivotItems
    If pi.Visible Then
        Debug.Print pi.Value
    End If
Next

Und bekommt einen Type Mismatch Fehler aufpi.Visible. Wir wissen dasVisible ist eine Immobilie inpi, wie nach dem Tippenpi. der intellisense erscheint mit allenPivotItem Eigenschaften und Methoden (wie erwartet). Wir wissen, dass pi ein gültiges PivotItem als Aufruf enthältpi.Value druckt den Wert korrekt aus (Entfernen desIf/End If Anweisungen, bei denen der Wert nur ausgegeben wird, werden alle Elemente in der Liste gedruckt. Sein Berichtsfilter hat nichts Besonderes - es ist kein berechnetes Feld oder ähnliches. Die meisten anderen Eigenschaften vonPivotItem auch scheitern.

Weiß jemand warumPivotItem würde dieses Verhalten zeigen? DasMSDN-Referenz scheint eher unangemessen.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage