я получил приведенный ниже код отсюда: Перебор фильтров отчетов для изменения видимость не работает, если решение помечено как работающее. После модификации в соответствии с моими потребностями это выглядит так:
With pt.PivotFields(6)
.ClearAllFilters
If .PivotItems.Count > 0 Then
'goofy but necessary
Set firstPi = .PivotItems(1)
For Each pi In .PivotItems
If firstPi.Visible = False Then
firstPi.Visible = True
End If
'Don't loop through firstPi
If pi.Value <> firstPi.Value Then
itemValue = pt.GetPivotData("[Measures].[Nr of Cancelled]", "[Characteristics].[Reason]", pi.Name).Value
rw = rw + 1
nwSheet.Cells(rw, 1).Value = pi.Name
nwSheet.Cells(rw, 2).Value = pi.Visible
If itemValue < 2000 Then
If pi.Visible = True Then
pi.Visible = False 'Error here
End If
Else
MsgBox pi.Value
If pi.Visible = False Then
pi.Visible = True 'Error here
End If
End If
End If
Next
'Finally perform the check on the first pivot item
If firstPi > 2000 Then
firstPi.Visible = True
Else
firstPi.Visible = False
End If
End If
End With
Я вижу, что весь код работает нормально, и я сталкиваюсь с ошибкой только в строках pi.Visible = True
или pi.Visible = False
.
Я не уверен, где я сделал что-то не так, чтобы код не работал.
Когда я искал решение в Интернете, я наткнулся на эту ссылку: https://support.microsoft.com/en-us/kb/114822, где MS упомянула, что только непрерывные элементы в поле сводной таблицы могут быть скрыты. Означает ли это, что элементы в моей таблице не являются смежными? Может кто-нибудь мне помочь? Я потерялся здесь.