Я пытаюсь манипулировать сводной таблицей Excel 2007 через VBA, чтобы я мог перебирать категории сводной таблицы, устанавливать все невидимые, кроме одной, сохранять лист в формате pdf и переходить к следующей категории. Для этого я использую следующий фрагмент кода.
Dim pf As PivotField
Set pf = ActiveSheet.PivotTables("PivotTable1").PivotFields("NAME")
Dim pi as PivotItem
For Each pi In pf.PivotItems
If pi.Visible = False Then
pi.Visible = True 'Error here
End If
Dim pi2 As PivotItem
For Each pi2 In pf.PivotItems
If pi2 <> pi Then
pi2.Visible = False
End If
Next pi2
'Saving to PDF goes here
Next pi
Цикл, кажется, работает в первый раз. Каждая категория отменяется, кроме первой, и выводится хороший PDF-файл. Однако в следующий раз, когда он входит в цикл, он выдает ошибку «Невозможно установить свойство Visible класса PivotItem» в указанной строке. Я знаю, что в сводной таблице должен быть выбран хотя бы один элемент, но это не проблема, поскольку я пытаюсь установить для видимости значение TRUE вместо FALSE.
Я попытался исправить это, поставив галочку вокруг него, так как, возможно, вам не разрешено делать видимым уже видимый PivotItem, но это, похоже, не сработало.
Любая помощь будет очень высоко ценится!