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