Por que essa chamada PivotItem.Visible está emitindo um erro TypeMismatch?
Isso está nos desconcertando. Eu tenho uma tabela dinâmica padrão com um filtro de relatório que permite a seleção múltipla de itens. Eu posso obter os itens selecionados no filtro de relatório com:
Dim pi As PivotItem
For Each pi In PivotTables("MyPivot").PivotFields("MyField").PivotItems
If pi.Visible Then
Debug.Print pi.Value
End If
Next
Simples. Meu colega tem uma tabela dinâmica padrão com um filtro de relatório que permite a seleção múltipla de itens. Ele tenta obter itens selecionados no filtro de relatório como mesmo 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
E recebe um erro de incompatibilidade de tipopi.Visible
. Nós sabemos issoVisible
é uma propriedade empi
, como depois de digitarpi.
o intellisense aparece com todo oPivotItem
propriedades e métodos (como seria de esperar). Sabemos que pi contém um PivotItem válido, como chamandopi.Value
imprime o valor corretamente (removendoIf
/End If
declarações para apenas deixá-lo imprimir o valor independentemente irá imprimir todos os itens na lista). Não há nada "especial" em seu filtro de relatórios - não é um campo calculado ou algo assim. A maioria das outras propriedades dePivotItem
também falhar.
Alguem sabe por quêPivotItem
mostraria esse comportamento? oReferência do MSDN parece bastante inadequado.