使用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
会起作用,因为.SetSourceData
是Sheets("chart_sheet").SetSourceData
的缩写。 (另请注意, Sheets
集合包含Worksheets
和Charts
对象,因此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")