Почему этот вызов PivotItem.Visible вызывает ошибку TypeMismatch?

Это сбивает нас с толку. У меня есть стандартная сводная таблица с фильтром отчетов, который позволяет многократно выбирать элементы. Я могу получить выбранные элементы в фильтре отчетов с помощью:

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

Просто. У моего коллеги есть стандартная сводная таблица с фильтром отчетов, который позволяет многократно выбирать элементы. Он пытается получить выбранные элементы в фильтре отчетов стот же код:

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

И получает ошибку несоответствия типов наpi.Visible, Мы знаем этоVisible собственность вpiкак после вводаpi. intellisense появляется со всемиPivotItem свойства и методы (как и следовало ожидать). Мы знаем, что pi содержит действительный PivotItem, так как вызываетpi.Value печатает значение правильно (удаляяIf/End If операторы, позволяющие ему печатать значение независимо, будут печатать каждый элемент в списке). В его фильтре отчетов нет ничего «особенного» - это не вычисляемое поле или что-то в этом роде. Большинство других свойствPivotItem тоже не получится.

Кто-нибудь знает почемуPivotItem показал бы это поведение?Ссылка на MSDN кажется довольно неадекватным.

Ответы на вопрос(3)

Ваш ответ на вопрос