2009-06-01 90 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