多个数据透视表SetSourceData错误

时间:2009-06-01 02:56:24

标签: excel excel-vba vba

我有多个数据透视表,每个透视图在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 个答案:

答案 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”更改为特定工作表名称似乎也会触发该错误。