0

在记录取消选择“(空白)”项目时,我明确提到了所有项目。

ActiveChart.PivotLayout.PivotTable _
.PivotFields("[Table1].[Field1].[Field1]").VisibleItemsList = _
                                           Array("[Table1].[Field1].&[Item1]", _
                                                 "[Table1].[Field1].&[Item2]", _
                                                 "[Table1].[Field1].&[Item3]", _
                                                 "[Table1].[Field1].&[Item4]", _
                                                 "[Table1].[Field1].&[Item5]", _
                                                 "[Table1].[Field1].&[Item6]")

但我不能提及这些项目,因为我事先并不知道它们(它们位于数据模型中)。

代码应遵循以下行:

With ActiveChart.PivotLayout.PivotTable 
    .PivotFields("[Table1].[Field1].[Field1]").VisibleItemsList = Array("")
    .PivotFields("[Table1].[Field1].[Field1]").PivotItems("(blank)").Visible = False
End With 

编辑:显然,.PivotItems("(blank)").Visible = False应该做我需要的,但它不是......(运行时'1004':无法获取 PivotField 类的 PivotItems 属性

4

1 回答 1

1

我找到了解决方案/解决方法:

    Dim PivItem            As PivotItem
    Dim PivFieldsArray()   As Variant
    Dim i                  As Integer

    With ActiveChart.PivotLayout.PivotTable.PivotFields("[Table1].[Field1].[Field1]")
        For Each PivItem In .PivotItems
            ReDim Preserve PivFieldsArray(0 To i)
            If PivItem.name <> "[Table1].[Field1].&" Then
                PivFieldsArray(i) = PivItem.name
                i = i + 1
            End If
        Next
        .VisibleItemsList = PivFieldsArray
    End With
于 2016-09-16T20:57:55.803 回答