Есть таблица, нужно создать на её основе сводную таблицу.
Через макрорекордер записал код для ее создания, но в коде вместо ячеек, из которых надо брать данные, записаны значения из этих ячеек.
Я указал в коде макроса вместо значений коды такого вида: Cells(2,1).Value.
Если в коде написана конкретная цифра из ячейки B2 (например "6"), все работает, но если "6" заменить на Cells(2,2).Value - происходит ошибка.
Макрос
Sub Макрос()
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"t!R2C1:R999C3", Version:=xlPivotTableVersion15).CreatePivotTable _
TableDestination:="t!R2C5", TableName:="PivotTable1", DefaultVersion:= _
xlPivotTableVersion15
With ActiveSheet.PivotTables("PivotTable1").PivotFields(Cells(2, 3).Value)
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("PivotTable1").PivotFields(Cells(2, 1).Value)
.Orientation = xlColumnField
.Position = 1
End With
ActiveSheet.PivotTables("PivotTable1").AddDataField _
ActiveSheet.PivotTables("PivotTable1").PivotFields(Cells(1, 2).Value), "Sum", xlSum
ActiveSheet.PivotTables("PivotTable1").ColumnGrand = False
ActiveWorkbook.ShowPivotTableFieldList = False
ActiveSheet.PivotTables("PivotTable1").RowGrand = False
End Sub
Вы не включаете в сводную таблицу шапку исходной таблицы.
При создании сводной, нужно обязательно включать шапку исходной таблицы.
Это видно в этой строке:
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"t!R2C1:R999C3", Version:=xlPivotTableVersion15).CreatePivotTable _
TableDestination:="t!R2C5", TableName:="PivotTable1", DefaultVersion:= _
xlPivotTableVersion15
в этом месте:
SourceData:="t!R2C1:R999C3"