Dlaczego to wywołanie PivotItem.Visible wywołuje błąd TypeMismatch?

To nas zaskakuje. Mam standardową tabelę przestawną z filtrem raportu, który umożliwia wielokrotny wybór elementów. Mogę pobrać wybrane elementy z filtru raportu za pomocą:

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

Prosty. Moja kolega ma standardową tabelę przestawną z filtrem raportu, który umożliwia wielokrotny wybór elementów. Próbuje uzyskać wybrane elementy w filtrze raportu za pomocąten sam kod:

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

I dostaje błąd niezgodności typupi.Visible. Wiemy toVisible jest własnością wpi, jak po wpisaniupi. Intellisense pojawia się wraz ze wszystkimiPivotItem właściwości i metody (jak można się spodziewać). Wiemy, że pi zawiera prawidłowy PivotItem, jako wywołaniepi.Value drukuje wartość poprawnie (usuwającIf/End If instrukcje pozwalające na wydrukowanie wartości bez względu na to, czy wydrukuje każdy element na liście). Nie ma nic specjalnego w jego filtrze raportów - nie jest to pole obliczeniowe ani nic podobnego. Większość innych właściwościPivotItem także nie.

Czy ktoś wie dlaczegoPivotItem pokaże to zachowanie? TheOdniesienie do MSDN wydaje się raczej niewystarczający.

questionAnswers(3)

yourAnswerToTheQuestion