我从这里得到了以下代码:Looping through report filters to change visibility doesn't work其中解决方案被标记为有效。根据我的需要进行修改后,就像这样:
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提到可以隐藏数据透视表字段中的仅 连续项。 这是否意味着我桌子中的物品不是连续的?谁能帮我?我迷失了。
答案 0 :(得分:1)
我找不到错误的任何解决方案。但我找到了另一种方法来完成任务。我使用数组来存储要隐藏的所有项目和要显示的项目,以便我可以调用HiddenItemsList或VisibleItemsList:
: