如何使用VBA从不同表格中选择数据范围?假设数据表名称为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
块的目的是允许您仅将.
作为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")