错误' 1004':无法设置PivotItem类的Visible属性

时间:2016-07-25 15:36:12

标签: excel-vba hide pivot-table pivotitem vba

我从这里得到了以下代码: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 = Truepi.Visible = False

我不确定代码无法正常工作的地方。

当我在网上搜索解决方案时,我遇到了这个链接:https://support.microsoft.com/en-us/kb/114822 MS提到可以隐藏数据透视表字段中的 连续项。 这是否意味着我桌子中的物品不是连续的?谁能帮我?我迷失了。

1 个答案:

答案 0 :(得分:1)

我找不到错误的任何解决方案。但我找到了另一种方法来完成任务。我使用数组来存储要隐藏的所有项目和要显示的项目,以便我可以调用HiddenItemsList或VisibleItemsList:

: