我是VBA的新手。 我录制了一个想要编辑它的宏。记录后,我想运行一次。但是当我这样做时,它返回了运行时错误5。
宏应从片材中取出并将其添加到另一张纸中的枢轴表中。
所以这是错误所在的代码。
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"sourcetable!R1C1:R1048576C21", Version:=xlPivotTableVersion14). _
CreatePivotTable TableDestination:="Tabelle2!R3C1", TableName:= _
"PivotTable1", DefaultVersion:=xlPivotTableVersion14
感谢您的帮助
答案 0 :(得分:1)
不,它不是它只是一个新的工作表@SiddharthRout - 初学者4分钟前
最简单的方法是
With ActiveWorkbook
.Sheets("Tabelle2").Cells.Clear
.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"sourcetable!R1C1:R1048576C21", Version:=xlPivotTableVersion14). _
CreatePivotTable TableDestination:="Tabelle2!R3C1", TableName:= _
"PivotTable1", DefaultVersion:=xlPivotTableVersion14
End With
此外,我注意到您已将源数据定义到行1048576.为什么会这样?更完美的方法是找到最后一行,然后构建你的范围。例如
Sub Sample()
Dim lRow As Long
With ActiveWorkbook
'~~> Find last row in sheet sourcetable
With .Sheets("sourcetable")
If Application.WorksheetFunction.CountA(.Cells) <> 0 Then
lRow = .Cells.Find(What:="*", _
After:=.Range("A1"), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Row
Else
lRow = 1
End If
End With
.Sheets("Tabelle2").Cells.Clear
.PivotCaches.Create(SourceType:=xlDatabase, _
SourceData:="sourcetable!R1C1:R" & _
lRow & _
"C21", _
Version:=xlPivotTableVersion14).CreatePivotTable _
TableDestination:="Tabelle2!R3C1", _
TableName:="PivotTable1", _
DefaultVersion:=xlPivotTableVersion14
End With
End Sub
答案 1 :(得分:0)
首先:源表和Tabelle2工作表是否存在?
然后,尝试删除所有可选的无意义参数:
ActiveWorkbook.PivotCaches.Create(xlDatabase, "sourcetable!R1C1:R1048576C21") _
.CreatePivotTable ActiveWorkbook.Worksheets("Tabelle2").Range("R3C1")