Почему этот вызов 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 кажется довольно неадекватным.