VBA — если PivotItem виден

У меня есть некоторый код vba, который я хотел бы запустить, если PivotItem виден, и другой фрагмент кода для запуска, если он не виден. Когда я запускаю этот модуль и элемент включен, он не распознает, что он виден.

Sub test()

If Sheets("Sheet1").PivotTables("PivotTable1").PivotFields("TestField").PivotItems("TestItem").Value = xlOn Then
MsgBox "is on"
Else: MsgBox "is off"
End If

End Sub

Ваше здоровье


person krismosel    schedule 13.04.2015    source источник
comment
Вы пробовали Refresh свою таблицу?   -  person miradulo    schedule 13.04.2015
comment
Да и запуск этого саба по-прежнему не работает должным образом.   -  person krismosel    schedule 13.04.2015


Ответы (1)


Вам нужно свойство visible, а не свойство value элемента pivotitem.

Попробуй это:

If Sheets("Sheet1").PivotTables("PivotTable1").PivotFields("TestField").PivotItems("TestItem").Visible = True Then
person OpiesDad    schedule 13.04.2015
comment
Использование этого по-прежнему не работает. В другом коде, если бы я должен был сделать элемент видимым или нет, этот код был бы в порядке. Но по какой-то причине определить, так это или нет, — это совсем другая история. - person krismosel; 13.04.2015
comment
Я сделал тестовую сводную таблицу и точно проверил ее, и она работает так, как ожидалось. Возможно, есть ошибка в названии сводной таблицы, сводных полей или сводного элемента. Вы можете попробовать записать макрос, используя сводную таблицу, сводное поле и рассматриваемый элемент сводки, и посмотреть, что он говорит об именах этих элементов. - person OpiesDad; 13.04.2015