Как добавить сводную таблицу всех данных в листе с помощью макроса? - PullRequest
0 голосов
/ 29 октября 2019

Я записываю макрос и пытаюсь добавить сводную таблицу со всеми данными, существующими на активном листе, но в итоге получаю жестко выделенный выбор. Проблема заключается в том, что данные со временем растут, и в результате жестко заданного выбора в сводной таблице пропускается куча данных.

Как сделать ее динамической, чтобы все данные (от A1 до последнего заполнялись)строка / столбец) фиксируются в выделении? Любые подсказки?

Вот код, который я использовал:

Range("A1").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Sheets.Add
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "Sheet1!R1C1:R9734C17", Version:=6).CreatePivotTable TableDestination:= _
        "Sheet2!R3C1", TableName:="PivotTable1", DefaultVersion:=6
    Sheets("Sheet2").Select
    Cells(3, 1).Select

Проблема заключается в этой части кода:

SourceData:= _
        "Sheet1!R1C1:R9734C17"

Как сделать это динамически,так что исходные данные в Sheet1 выбираются из A1 в фактическую последнюю строку (а не жестко, как сейчас)?

Спасибо!

РЕДАКТИРОВАТЬ (после комментария @ BigBen):

Попробовал также следующий блок кода вместо того, что был в исходном вопросе, и все равно получил ошибку:

    Range("A1").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Sheets.Add
    Sheets("Sheet1").Select    
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "Sheet1!" & Sheet1.Range("A1").CurrentRegion.Address(ReferenceStyle:=xlR1C1), Version:=6).CreatePivotTable TableDestination:= _
        "Sheet2!R3C1", TableName:="PivotTable1", DefaultVersion:=6

    Sheets("Sheet2").Select
    Cells(3, 1).Select

А теперь появляется сообщение об ошибке в ActiveWorkbook.PivotCache ... Строка с текстом:

"Эта команда требует как минимум две строки исходных данных. Вы не можете использовать команду для выборатолько в одной строке. Попробуйте следующее:

  • Если вы используете расширенный фильтр, выберите диапазон ячеек, который содержит как минимум две строки данных. Затем снова нажмите команду расширенного фильтра.
  • Если вы создаете отчет сводной таблицы или сводной диаграммы. Введите a ... "И я не могу читать дальше во всплывающем окне.
...