2009-06-01 57 views
0

我有多个透视图与每个在Excel 2002中多个数据透视图SetSourceData错误

当我尝试生成这些图表与VBA与下面的代码放在单独的工作自己的数据透视表:

Set cht = Charts.Add(After:=Worksheets("Setup")) 
With cht 
    ' we use named ranges here 
    .SetSourceData Source:=range(tblName) 
    .Name = chtName 

....

其中tblName是刚创建几行之前的命名范围,如果只有一个表和图表生成但运行时错误1004,则代码​​运行正常:“源数据数据透视图报告不能改变......“如果我尝试生成数据透视表和图表设置一个接一个。

去插入 - >名称 - >定义,创建的命名范围列表似乎是正确的。

为具有动态范围的数据透视表设置源数据的正确方法是什么?

+0

是否可以上传excel文件(具有相同输入/输出和除外的虚拟文件)? – shahkalpesh 2009-06-01 03:34:19

回答

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”发送特定的工作表名称似乎也会触发该错误。

+0

不确定为什么SetSourceData方法正在轻微运行两次不同的语法。 Source是第一个参数,也是唯一需要的参数,因此两条线都应具有相同的结果 – barrowc 2009-06-02 00:03:02

0

我想你可能会试图一次做太多事情。

如果数据源将发生变化,我不会使用数据透视表。

使用数据透视表,在运行时创建图表(如你的例子)。构建数据透视表结果的图表。

+0

使用枢轴图的重点是我可以创建一个数据透视表。创建图表的顺序如下:将数据拖入Pivot表中,将一个命名范围添加到该透视范围,从该透视表创建图表,但通过创建的命名范围引用该图表 – TheObserver 2009-06-01 05:01:38