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.