Ich möchte die Pivot-Tabelle automatisch in ein neues Blatt einfügen. Wenn ich das ausführe, fügt es nur ein neues Blatt mit dem Name der Pivot-Tabelle ein, jedoch erstellt es den Pivot-Cache nicht und es liest die Daten aus Quellblatt nicht. Der Blattname ist Data
und Pivot
sollte von diesem erstellt werden.Fügt nur ein neues Blatt anstelle einer Pivot-Tabelle in ein neues Blatt ein
Sub InsertPivotTable()
Dim PSheet As Worksheet
Dim DSheet As Worksheet
Dim PCache As PivotCache
Dim PTable As PivotTable
Dim PRange As Range
Dim LastRow As Long
Dim LastCol As Long
On Error Resume Next
Application.DisplayAlerts = False
Worksheets("PivotTable").Delete
Sheets.Add Before:=ActiveSheet
ActiveSheet.Name = "PivotTable"
Application.DisplayAlerts = True
Set PSheet = Worksheets("PivotTable")
Set DSheet = Worksheets("Data")
LastRow = DSheet.Cells(Rows.Count, 1).End(xlUp).Row
LastCol = DSheet.Cells(1, Columns.Count).End(xlToLeft).Column
Set PRange = DSheet.Cells(1, 1).Resize(LastRow, LastCol)
Set PCache = ActiveWorkbook.PivotCaches.Create _
(SourceType:=xlDatabase, SourceData:=PRange). _
CreatePivotTable(TableDestination:=PSheet.Cells(2, 2), _
TableName:="PivotTable")
Set PTable = PCache.CreatePivotTable _
(TableDestination:=PSheet.Cells(1, 1), TableName:="PivotTable")
With ActiveSheet.PivotTables("PivotTable").PivotFields("Last_Touch_User_Name")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("PivotTable").PivotFields("Action_Code")
.Orientation = xlColumnField
.Position = 1
End With
With ActiveSheet.PivotTables("PivotTable").PivotFields("Result_Code")
.Orientation = xlColumnField
.Position = 2
End With
With ActiveSheet.PivotTables("PivotTable").PivotFields("Medical_Manager__")
.Orientation = xlDataField
.Position = 1
.Function = xlCount
End With
End Sub
Bitte bearbeiten Sie Beiträge verfassen. Kopieren und fügen Sie den Code direkt von Ihrem VBE ein und formatieren Sie ihn als Code, nicht als Blockquote. Ich habe versucht, es aufzuräumen, aber ich möchte die Zeit nicht verbringen. – teylyn
Ich werde Sekunde @teylyn. Ich habe das meiste getan, aber sorge dafür, dass du deinen Code das nächste Mal aufräumst. Es ist leicht. In VBE (wo du deinen Code schreibst, markierst du ihn und drückst 'Tab'. Dann kopiere ihn hier. Er formatiert deinen Code automatisch nach Bedarf. – L42