当录制取消选择“(空白)”项目时,我会明确提及所有项目。
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属性 )
答案 0 :(得分: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