Excel VBA oder VSTO - Wie Sie eine Schleife über Felder auf einer Pivot-Tabelle?
-
19-08-2019 - |
Frage
Hier einig Beispiel-VBA-Code:
Sub Macro1()
Dim pt As PivotTable
Set pt = ActiveSheet.PivotTables("SomePivotTable")
'Set colOfFields = pt.PivotFields
End Sub
Die dritte Zeile ist unvollständig / gebrochen. Was ist der richtige Weg, um Zugang zu Sammlung aller Felder in einer Pivot-Tabelle zu bekommen? Ich brauche, um eine Schleife über sie in der Lage sein. Die tatsächliche Codierung wird in C # VSTO-Projekt durchgeführt wird.
Lösung
Dies funktioniert für mich (Excel 2003 [11.8146.8202] SP2):
Sub Macro1()
Dim pt As PivotTable
Dim col As PivotFields
Dim c As PivotField
' Name of the pivot table comes from right clicking on the pivot table,
' Table Options..., Name field.
Set pt = ActiveSheet.PivotTables("PivotTable1")
Set col = pt.PivotFields
For Each c In col
Debug.Print c.Name
Next
End Sub
Andere Tipps
Ok. Gefunden einige C # -flavored Code Ideen aus:
http: //blogs.msdn. com / andreww / Archiv / 2008/07/25 / Erstellen-a-Pivot-Tabelle-programmatically.aspx
// pvtTable is an Excel.PivotTable set earlier in the code
Excel.PivotFields pflds =
(Excel.PivotFields)pvtTable.PivotFields(System.Type.Missing);
foreach (Excel.PivotField pf in pflds)
{
//some code here
}
Der Trick ist in den System.Type.Missing vorbei zurück, um die „Sammlung“ von Feldern zu erhalten.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow