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.

questionAnswers(3)

yourAnswerToTheQuestion