¿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.