Excel VBA Макросы: Происходит ошибка при создании сводной таблицы с помощью VBA.

Автор Совещание, 29 июня 2020, 10:47

Совещание

Есть таблица, нужно создать на её основе сводную таблицу.
Через макрорекордер записал код для ее создания, но в коде вместо ячеек, из которых надо брать данные, записаны значения из этих ячеек.
Я указал в коде макроса вместо значений коды такого вида: 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"

Совещание

Спасибо огромное!
Сделал сводную таблицу с первой строки и указал ячейки шапки в коде. Все заработало.