Макрос сводной таблицы Excel для использования на нескольких листах с динамическими диапазонами

Каждый месяц на работе я создаю отчет, который анализирует продажи по семейству продуктов. Из-за ограничений в отчете, который я использую для данных, я не могу просто использовать сводную таблицу для получения данных, необходимых для моего отчета. Я разделяю данные на отдельные листы по семейству продуктов. Количество строк на каждом листе зависит от количества клиентов, которые купили продукт в этой группе продуктов. В настоящее время у меня есть макрос, который я запускаю каждый раз, когда я создаю новый лист, который делает суммы, sumproduct и sumif процедуры. Я также хочу добавить сводную таблицу в нижней части данных на каждом листе для дальнейших манипуляций.

Я понятия не имею, что я делаю неправильно, но мой код не работает. Вот оно:

ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
    "ActiveSheet.Name!R1C1:R231C30", Version:=6).CreatePivotTable TableDestination:= _
    "ActiveSheet.Name!R237C3", TableName:="PivotTable21", DefaultVersion:=6
Sheets("ActiveSheet.Name").Select
Cells(237, 3).Select

1 ответ

  1. ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "'" & ActiveSheet.Name & "'!R1C1:R231C30", Version:=6).CreatePivotTable TableDestination:= _
        "'" & ActiveSheet.Name & "'!R237C3", TableName:="PivotTable21", DefaultVersion:=6
    
    Sheets(ActiveSheet.Name).Select 'Seems redundant here?
    Cells(237, 3).Select
    

    Одинарные кавычки нужны, если в имени листа есть пробелы.