2009-04-22 147 views
1

我在Excel中創建了一個雙工作表模板 - 第一個工作表用於美觀的圖表,另一個工作表用於驅動這些圖表的數據。我寫了一個vb.net 2005應用程序,它可以將第二張工作表上的所有數據轉儲出來,並且圖表工作表完美地更新。同時複製多個工作表以保留圖表參考

我想在同一個工作簿中多次做這個報告。 (所以這些標籤會顯示爲'Person1 - Chart','Person1 - Data','Person2 - Chart','Person2 - Data'等)

我的解決方案是,對於每個人來說,運行,複製圖表模板,然後複製數據模板。問題是每個創建的圖表模板都指向原始數據工作表。我如何設置每個圖表工作表指向的工作表?

有沒有辦法複製成對的工作表,維持關係到自己,而不是父母?

回答

2

是的,你select both sheets使用複製功能之前。如果您正在手動執行此操作,請不要忘記事後取消選擇,否則您會將數據輸入到兩者中。

在VBA:

Sheets(Array("Chart template", "Data template")).Select 
ActiveWindow.SelectedSheets.Copy After:=Sheets("Data template") 

在互操作性:

App.ActiveWorkbook.Sheets(New String() 
     {"Chart template", "Data template"}).Select() 
App.ActiveWindow.SelectedSheets.Copy(After:= 
     App.ActiveWorkbook.Sheets("Data template")) 
+0

完全是我在找什麼。謝謝。 – Jeffrey 2009-04-22 19:31:21

0

我沒有用一個編程程序,使這項工作,但如果你把數據傳送到同一張紙上,並建立使用分頁預覽,以避免打印數據表中的表,那麼你可以複製和粘貼一遍又一遍的表格和你的圖表引用將保持有效。

根據數據量你使用這可能不是一個理想的解決方案,但它的我是如何管理這個問題。

+0

哦,這就是聰明!我仍然想分解數據(以符合規範),但如果沒有辦法解決這個問題,這正是我要採取的方向。謝謝! – Jeffrey 2009-04-22 19:00:56

0

複製後,您可以修復圖表中的引用。

使用SetSourceData方法

ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("A3:D7") 
+0

編輯修復錯誤的複製評論 – 2009-04-22 19:10:50