Excel VBA o VSTO: come si fa a scorrere i campi su una tabella pivot?
-
19-08-2019 - |
Domanda
Ecco un esempio di codice VBA:
Sub Macro1()
Dim pt As PivotTable
Set pt = ActiveSheet.PivotTables("SomePivotTable")
'Set colOfFields = pt.PivotFields
End Sub
La terza riga è incompleta / interrotta. Qual è il modo corretto per ottenere l'accesso alla raccolta di tutti i campi in una tabella pivot? Devo essere in grado di aggirarli. La codifica effettiva viene eseguita nel progetto VSTO C #.
Soluzione
Questo funziona per me (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
Altri suggerimenti
Ok. Ho trovato alcune idee di codice basate su C # da:
http: //blogs.msdn. com / Andreww / archive / 2008/07/25 / creazione-a-pivot-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
}
Il trucco sta passando in System.Type.Missing per ottenere la " collezione " di campi indietro.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow