【问题标题】:Excel Pivot Table macro to use on multiple worksheets with dynamic rangesExcel 数据透视表宏可用于具有动态范围的多个工作表
【发布时间】:2016-11-05 14:46:55
【问题描述】:

我每个月都会在工作中创建一份报告,按产品系列分析销售额。由于我用于数据的报告中的限制,我不能简单地使用数据透视表来获取我的报告所需的数据。我按产品系列将数据分成单独的工作表。每张纸上的行数取决于购买该产品系列中产品的客户数量。我目前有一个宏,每次创建执行 sum、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

【问题讨论】:

  • 尽量避免使用 ActiveSheet ,当您在不同的工作表上工作时,运行此代码会出错。

标签: excel pivot-table vba


【解决方案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

如果工作表名称有空格,则需要单引号。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-05
    • 1970-01-01
    • 2018-05-30
    • 2018-04-28
    相关资源
    最近更新 更多