2016-12-24 185 views
0

如何使用VBA從不同工作表中爲圖表選擇數據範圍?假設數據表名稱爲data_sheet,圖表名稱爲chart_sheet,我的數據範圍爲A1:A20。我怎樣才能在Excel中做到這一點?我檢查了THIS,但不適用於不同的工作表。否則,我檢查THIS但返回此錯誤:Subscript out of range使用VBA(EXCEL)爲不同工作表中的圖表選擇數據範圍

With Worksheets("chart_sheet") 
     ActiveChart.SetSourceData Source:=Worksheets("data_sheet").Range("A1:A20") 
End With 

回答

2

假設"chart_sheet"是你Chart"data_sheet"的名稱是您Worksheet的名字,我想你要做到以下幾點:

Charts("chart_sheet").SetSourceData Source:=Worksheets("data_sheet").Range("A1:A20") 

With塊沒有做任何事情有用 - With塊的目的是讓您只需輸入.作爲Worksheets("data_sheet").之類的快捷方式。

因此,像:

With Sheets("chart_sheet") 
    .SetSourceData Source:=Worksheets("data_sheet").Range("A1:A20") 
End With 

會的工作,因爲.SetSourceDataSheets("chart_sheet").SetSourceData的縮寫。 (還要注意,Sheets集合包含兩個WorksheetsCharts對象,所以Charts("chart_sheet")Sheets("chart_sheet")都指向相同的東西。)


ActiveChart是指當前活動的圖表,就如同ActiveSheet返回到當前片。如果在執行該代碼段時沒有活動圖表,則會出現錯誤。

所以下面這段代碼會也可能已經爲你服務:

Sheets("chart_sheet").Activate 
    ActiveChart.SetSourceData Source:=Worksheets("data_sheet").Range("A1:A20") 
1

爲chart_sheet可能不是一個工作,你試試這個?

with sheets("chart_sheet") 
+0

你驗證chart_sheet確實存在? – h2so4

+0

返回的錯誤:在這一行中'對象變量或With塊變量未設置'ActiveChart.SetSourceData Source:= Sheets(「data_sheet」)。Range(「A1:A20」)' – user2991243

相關問題