Die PivotFields
Sammlung scheint Elemente auszuschließen, auf die Sie noch verweisen können. Z.B. Diese werden nicht Fehler in dem sofortigen Fenster:
? ActiveSheet.PivotTables("PivotTable1").PivotFields("Sum of c")
? ActiveSheet.PivotTables("PivotTable1").PivotFields("Values")
(beachten Sie, dass meine Pivot eine Spalte c
genannt hat)
aber sie werden nicht ausgegeben pro Code:
For Each fld In pvt.PivotFields
Debug.Print fld.Name
Next fld
Es ist nicht klar, warum diese beim Auflisten der Sammlung nicht angezeigt werden.
Sie können jedoch direkt an Untersammlungen von PivotFields
wie RowFields
, ColumnFields
, PageFields
und DataFields
beziehen. Auf diese Weise können Sie Ihr Ziel erreichen:
Option Explicit
Sub Test()
HideFields ActiveSheet.PivotTables(1)
End Sub
Sub HideFields(pvt As PivotTable)
Dim fld As Object
'rows
For Each fld In pvt.RowFields
Debug.Print fld.Name
fld.Orientation = xlHidden
Next fld
'columns
For Each fld In pvt.ColumnFields
Debug.Print fld.Name
fld.Orientation = xlHidden
Next fld
'pages
For Each fld In pvt.PageFields
Debug.Print fld.Name
fld.Orientation = xlHidden
Next fld
'data
For Each fld In pvt.DataFields
Debug.Print fld.Name
fld.Orientation = xlHidden
Next fld
End Sub
Funktioniert wie ein Charme. Vielen Dank! – alpenmilch411