我需要使用数据透视表完成我的Makro以自动执行报告。 我搜索了许多不同的方法和解决方案,但到目前为止,还没有人工作。
这是我尝试使用宏记录器的尝试,通常我会避免使用它,但是我无法使用它:
Cells.Select
Sheets.Add
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"1!R1C1:R1048576C13", Version:=xlPivotTableVersion14).CreatePivotTable _
TableDestination:="Tabelle2!R3C1", TableName:="PivotTable1", _
DefaultVersion:=xlPivotTableVersion14
Sheets("Tabelle2").Select
Cells(3, 1).Select
With ActiveSheet.PivotTables("PivotTable1").PivotFields("PlatzID/Gerät")
.Orientation = xlRowField
.Position = 1
End With
ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
"PivotTable1").PivotFields("Tagabfluss"), "Anzahl von Tagabfluss", xlCount
With ActiveSheet.PivotTables("PivotTable1").PivotFields("Anzahl von Tagabfluss" _
)
.Caption = "Summe von Tagabfluss"
.Function = xlSum
End With
Range("E34").Select
我用宏录制器录制了它,但是播放它却不起作用,我得到了错误:
运行时错误5无效的过程调用或参数
这可能是由于我使用了错误的xlPivotTableVersion
而导致的,但是我检查了一下,发现所使用的匹配。
这是我从教程中获得的内容,但我不知道是什么导致了错误:
'Declare Variables
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
'Declare Variables
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("1")
'Define Data Range
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:="PivotTable2")
'Insert Blank Pivot Table
Set PTable = PCache.CreatePivotTable _
(TableDestination:=PSheet.Cells(, 1), TableName:="PivotTable2")
'Insert Row Fields
With ActiveSheet.PivotTables("PivotTable2").PivotFields("PlatzID/Gerät")
.Orientation = xlRowField
Position = 1
End With
' With ActiveSheet.PivotTables("PivotTable2").PivotFields("Month")
'.Orientation = xlRowField
' .Position = 2
' End With
'Insert Column Fields
' With ActiveSheet.PivotTables("PivotTable2").PivotFields("Zone")
' .Orientation = xlColumnField
' .Position = 1
' End With
'Insert Data Field
With ActiveSheet.PivotTables("PivotTable2").PivotFields("Tagesabfluss")
.Orientation = xlDataField
.Position = 1
.Function = xlSum
.NumberFormat = "#,##0"
.Name = "Revenue "
End With
'With pt
'With .PivotFields("PlatzID/Gerät")
'.Orientation = xlRowField
'.Position = 1
'End With
'.AddDataField .PivotFields("Tagabfluss"), "Summe von Tagabfluss", xlSum
'End With
这段代码现在大部分时间都是一团糟,因为我尝试了许多我认为可行的不同事情。问题在于它除了创建新工作表外什么都不做。
任何帮助将不胜感激。