Я пытаюсь создать сводную таблицу и поместить ее в заранее определенное место (не новый лист).
Перед каждым запуском макроса удаляется сводная таблица, а также предварительно определенный лист.
Я заметил, что когда вы создаете таблицу вручную, имя таблицы увеличивается на единицу каждый раз (PivotTable2, PivotTable3 ...), что, как мне кажется, приводит к падению моего кода.
Я получаю сообщение об ошибке 5, недопустимый вызов процедуры или аргумент в этой строке:
ActiveWorkbook.PivotCaches.Create
Я проверил этот поток , который говорит, что вы можете полностью удалить параметр имени таблицы или переименовать его - однако я все еще получаю ошибки.
Мой код:
Sub CreatePivot()'
' CreatePivot Macro
'
' Set data as table
Sheets("Filtered Flags").Select
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$G$16000"), , xlYes).Name _
= "Table1"
' Create worksheet for pivot output
Sheets.Add Before:=ActiveSheet
ActiveSheet.Name = "Flag Pivot"
'Create Pivot Table
Sheets("Filtered Flags").Select
Range("Table1[[#Headers],[Order '#]]").Select
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"Table1", Version:=6).CreatePivotTable TableDestination:="Flag Pivot!R3C1" _
, TableName:="PivotTable5", DefaultVersion:=6
Sheets("Flag Pivot").Select
Cells(3, 1).Select
With ActiveSheet.PivotTables("PivotTable5").PivotFields("Material #")
.Orientation = xlRowField
.Position = 1
End With
End Sub