使用VBA(EXCEL)为不同工作表中的图表select数据范围

如何使用VBA从不同的工作表中为图表select数据范围? 假设数据表名是data_sheet ,图表名是chart_sheet ,我的数据范围是A1:A20 。 我怎样才能在Excel中做到这一点? 我检查了这个,但没有为不同的工作表。 否则,我检查了这个,但返回这个错误:下Subscript out of range

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

假设"chart_sheet"是您的Chart的名称和"data_sheet"是您的Worksheet的名称,我认为你想要做到以下几点:

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

你的With块没有做任何有用的事情 – With块的目的是让你input. 作为Worksheets("data_sheet").类的快捷方式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") 

因为chart_sheet可能不是工作表,你试过吗?

 with sheets("chart_sheet")