我有多个数据透视表,每个透视图在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:“数据透视图报表的源数据无法更改。 ..“如果我尝试一个接一个地生成数据透视表和图表集。
要插入 - >名称 - >定义,创建的命名范围列表似乎是正确的。
为具有动态范围的数据透视表设置源数据的正确方法是什么?
答案 0 :(得分:0)
我想你可能会尝试一次做太多事情。
如果数据源将要更改,我将不会使用数据透视表。
使用数据透视表,在运行时创建图表(就像您的示例一样)。构建数据透视表结果的图表。
答案 1 :(得分:0)
这段代码假设每张纸只有一个数据透视表,数据透视表在单元格A1上开始:
Sheets(wsName).Select
Range("A1").Select
Set cht = Charts.Add(after:=Worksheets(Worksheets.Count))
With cht
.SetSourceData Sheets(wsName).Range("A1")
.Name = chtName
...
同样将“Worksheets.Count”更改为特定工作表名称似乎也会触发该错误。