我有多个数据透视图,每个透视图在Excel 2002中的不同工作表上都有自己的数据透视表 .
当我尝试使用以下代码使用VBA生成这些图表时:
Set cht = Charts.Add(After:=Worksheets("Setup"))
With cht
' we use named ranges here
.SetSourceData Source:=range(tblName)
.Name = chtName
....
其中tblName是刚创建几行的命名范围,如果只生成一个表并生成图表,则代码运行正常,但给出了运行时错误1004:“数据透视图报表的源数据无法更改...”如果我尝试一个接一个地生成数据透视表和图表集 .
转到插入 - >名称 - >定义,创建的命名范围列表似乎是正确的 .
为具有动态范围的数据透视表设置源数据的正确方法是什么?
2 回答
我想你可能会尝试一次做太多事情 .
如果数据源将要更改,我将不会使用数据透视表 .
使用数据透视表,在运行时创建图表(如您的示例) . 构建数据透视表结果的图表 .
这段代码假定每张工作表只有一个数据透视表,数据透视表在单元格A1上开始:
...
将“Worksheets.Count”更改为特定工作表名称似乎也会触发该错误 .