¿Por qué esta llamada PivotItem.Visible lanza un error TypeMismatch?

Esto nos está desconcertando. Tengo una tabla dinámica estándar con un filtro de informe que permite la selección múltiple de elementos. Puedo obtener los elementos seleccionados en el filtro de informe con:

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

Sencillo. Mi colega tiene una tabla dinámica estándar con un filtro de informe que permite la selección múltiple de elementos. Intenta obtener elementos seleccionados en el filtro de informe conel mismo código:

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

Y obtiene un error de tipo Mismatch enpi.Visible. Lo sabemosVisible es una propiedad enpi, como después de escribirpi. El intellisense aparece con toda laPivotItem Propiedades y métodos (como cabría esperar). Sabemos que pi contiene un PivotItem válido, como llamadapi.Value imprime el valor correctamente (eliminando elIf/End If las instrucciones para simplemente dejar que se imprima el valor sin importar se imprimirán todos los elementos de la lista). No hay nada "especial" en su filtro de informe, no es un campo calculado ni nada de eso. La mayoría de las otras propiedades dePivotItem también fallan.

Alguien sabe por quéPivotItem ¿Mostraría este comportamiento? losReferencia de MSDN Parece bastante inadecuado.

Respuestas a la pregunta(3)

Su respuesta a la pregunta