错误1004 excel 2010:无法设置pivotitem类的visible属性

时间:2014-07-09 14:37:27

标签: excel pivot visible

由于上面那么着名的错误,我无法使我的代码正常工作。我无法找到解读以前帖子的解决方案,所以希望任何人都可以帮助我。

我在不同的工作表(ws)中有几个数据透视表(pt),以及存储在我创建的数组中的项目列表。 我已经编写了一个用于设置pt中所有项目的宏,除了数组中的那些项目(代码中的listOffnet)。一切正常。

现在,我想做补充操作:设置OFF不在数组中的所有项目。 不幸的是,我在第

行收到错误
pvtItm.Visible = False

非常感谢! 这是我的代码:

Sub ptFilterOffnet()

Dim PvtTbl As PivotTable
Dim pvtItm As PivotItem
Dim pvtFld As String
Dim listItem As Variant
Dim listOffnet As Variant
Dim lastRow As Integer
Dim myws As String

pvtFld = "CATEGORY_DESCRIPTION"
myws = "GESTIONE_ADMIN"

resetSlicers 'function resetting all slicers connected to pivot tables (all items ON)

' Populate the array with some data in a specific range
lastRow = Sheets(myws).Cells(Rows.Count, 10).End(xlUp).Row
listOffnet = populateArray(myws, 3, lastRow, 10, 10)

' All OFF but items within listOffnet
For Each PvtTbl In Sheets("P1").PivotTables
    For Each pvtItm In PvtTbl.PivotFields(pvtFld).PivotItems
        For Each listItem In listOffnet
            If pvtItm <> listItem Then
                pvtItm.Visible = False
            End If
        Next      
    Next
Next
End Sub

1 个答案:

答案 0 :(得分:0)

而不是取消&#34; off&#34;将值放入数组中,尝试在For Each循环中引用该范围。例如,这对我有用:

For Each PvtTbl In Sheets("P1").PivotTables
    For Each pvtItm In PvtTbl.PivotFields(pvtFld).PivotItems
        For Each listItem In Range("OffList").Cells
            If pvtItm <> listItem Then
                pvtItm.Visible = False
            End If
        Next
    Next
Next

区别在于第3行。

如果这不起作用,您可以尝试changing the Sort parameterany of the proposed solutions in this thread