2016-07-07 11 views
1

Ich habe eine Pivot-Tabelle in VBA mit String-Daten erstellt, aber scheint nicht alle Felder in der Pivot-Tabelle zu reduzieren, wie würde ich das tun? Hier ist meine QuellcodeVBA-Pivot-Tabelle Alle Felder ausblenden

SrcData = ActiveSheet.Name & "!" & Range(Cells(1, 1), Cells(46, 3)).Address(ReferenceStyle:=xlR1C1) 
StartPvt = Sheets("Key Controls").Cells(2, 5).Address(ReferenceStyle:=xlR1C1) 
Set pvtCache = ActiveWorkbook.PivotCaches.Create(_ 
    SourceType:=xlDatabase, _ 
    SourceData:=SrcData) 
Set pvt = pvtCache.CreatePivotTable(_ 
    TableDestination:=StartPvt, _ 
    TableName:="PivotTable1") 
pvt.PivotFields("SOP Reference").Orientation = xlRowField 
pvt.PivotFields("Key Control ID").Orientation = xlRowField 
pvt.PivotFields("Key Control Name").Orientation = xlRowField 
+1

Ausrichtung der Zeilenfelder sollten auch Positionen haben. Ex. 'Mit ActiveSheet.PivotTables (" PivotTable3 "). PivotFields (" Schlüsselsteuerungs-ID ") .Orientation = xlRowField .Position = 2 Ende mit" Angenommen, Sie möchten das gesamte Feld auf "SOP Reference" reduzieren. Wählen Sie eine richtige Zelle aus 'A15'code ist' Range ("A15"). Wählen Sie ActiveSheet.PivotTables ("PivotTable3"). PivotFields ("Key Control Name"). _ PivotItems ("Elektron"). DrillTo "SOP-Referenz" 'Sieht Ihr Tisch [aussehen] (https://www.dropbox.com/s/51znhaab1z0lnno/pivot_q070716.xlsm?dl=0) – skkakkar

Antwort

0

Sie NICHT Verwendung pf.ShowDetail = False:

Es ist ein Alptraum der Effizienz, Sie für einen langen Moment stecken werde und wahrscheinlich zum Absturz Excel!


Die gute Methode zu verwenden ist DrillTo:

Public Sub PivotTable_Collapse() 

    Dim pT As PivotTable 
    Dim pF As PivotField 

    Set pT = ActiveSheet.PivotTables(1) 

    With pT 
     For Each pF In pT.RowFields 
      pF.DrillTo pF.Name 
     Next pF 
    End With 

End Sub