2017-10-17 3 views
1

Ich war in der Lage, Pivot-Tabellen im Code zuvor zu erstellen, aber das Hinzufügen zu einem neuen Arbeitsblatt. Ich versuche jetzt, eine Pivot-Tabelle zu einem vorhandenen Arbeitsblatt hinzuzufügen und Fehlermeldung "Laufzeitfehler 1004: der PivotTable-Feldname ist ungültig" erhalten. Der Code ist unten, mein Fehler beginnt im letzten Segment beginnend mit ActiveWorkbook und endet mit xlPivotTableVersion14. Jede Hilfe würde sehr geschätzt werden.VBA: Erstellen einer Pivot-Tabelle

Public Sub AlliedPT() 

Dim AlliedData As String 
Dim SAProw As Long 
Dim PivotSheet As String 

Sheets("Sheet1").Select 
SAProw = Cells(Rows.Count, "A").End(xlUp).Row 

Sheets("Sheet1").Select 
ActiveWorkbook.Names.Add Name:="AlliedData", RefersTo:= _ 
    "=Sheet1!$A$1:$N$" & SAProw 

Sheets("PivotSheet").Select 
PivotSheet = ActiveSheet.Name 

ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ 
    "AlliedData", Version:=xlPivotTableVersion14).CreatePivotTable _ 
    TableDestination:=PivotSheet & "!R3C6", TableName:="PivotTable18", 
    DefaultVersion _ 
    :=xlPivotTableVersion14 

End Sub 
+0

Nicht verwandt, aber * warum * setzen Sie einen Zeilenumbruch zwischen dem 'DefaultVersion' Parameternamen und dem': = xlPivotTableVersion14' Wert, den Sie ihm geben? –

+0

Ich folgte dem Macro Recorder für diesen Schritt des Prozesses. Das sollte wahrscheinlich entfernt werden – oryan5000

+0

Selbe für 'SourceData: =' und '" AlliedData "' - der Recorder ist ideal für die Erzeugung von beschissenen Code, sollten Sie es immer neu formatieren, so dass es mindestens minimal lesbar ist ;-) ... und ersetzen Sie alle das '.Select' mit Objektreferenzen und Memberaufrufen. –

Antwort

1

Ich glaube, Sie sollten Ihre Zeile 1 Spalt A-N in Blatt 1 und stellen Sie sicher, überprüfen gibt es einen einzigartigen, nicht-leeren Spaltennamen für jede Spalte in den Quelldaten. Die erste Zeile enthält die Pivot-Tabellenfeldnamen.

Verwandte Themen