2008-12-04 17 views
2

Voici quelques exemples de code VBA:Excel VBA ou VSTO - Comment boucler des champs sur un tableau croisé dynamique?

Sub Macro1() 
    Dim pt As PivotTable 
    Set pt = ActiveSheet.PivotTables("SomePivotTable") 
    'Set colOfFields = pt.PivotFields 
End Sub 

La troisième ligne est incomplète/brisée. Quelle est la méthode correcte pour accéder à la collection de tous les champs dans un tableau croisé dynamique? Je dois pouvoir faire une boucle sur eux. Le codage actuel est en cours dans le projet C# VSTO.

Répondre

3

Cela fonctionne pour moi (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 
+0

Hmmm. Laisse-moi tester ça dans VSTO-land. Quel est le type de données est col? – BuddyJoe

+0

Modifié pour déclarer explicitement les variables avec des types de données. –