首页 > 解决方案 > VBA 数据透视表动态范围

问题描述

我正在尝试为其行和列将来可能更改的数据透视表创建 VBA 代码。我使用了以下代码,但在设置 ptable 阶段出现运行时错误 1004。我还想在这里添加一个代码删除工作表“Pivot”(如果存在),然后创建一个新的,以便可以捕获所有数据。请您给点建议。

Dim Pivot As Worksheet
Dim pCache As PivotCache
Dim pTable As PivotTable
Dim lastRows As Long
Set Pivot = Worksheets.Add
Set pCache = ActiveWorkbook.PivotCaches.Create(xlDatabase, Sheets("CJI Data").Range("A2").CurrentRegion.Address(ReferenceStyle:=xlR1C1))
Set pTable = pCache.CreatePivotTable(Pivot.Range("A1"))

谢谢,R

标签: excelvbapivot-table

解决方案


为什么需要 .Address 和 R1C1?

Set PCache = ActiveWorkbook.PivotCaches.Create (xlDatabase, Sheets(“CJI Data”).Range(“A2”).CurrentRegion)

此外,如果数据扩展,无需删除表,这就是您使用动态范围的原因。只需刷新表。


推荐阅读