如何使用VBA从不同的工作表中选择图表的数据范围?假设数据表名称为data_sheet
,图表工作表名称为chart_sheet
,我的数据范围为A1:A20
。我怎样才能在excel中做到这一点?我检查了THIS,但不适用于不同的工作表。否则,我检查了THIS,但又返回了此错误:Subscript out of range
:
With Worksheets("chart_sheet")
ActiveChart.SetSourceData Source:=Worksheets("data_sheet").Range("A1:A20")
End With
答案 0 :(得分:2)
假设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")
返回当前工作表一样。如果在执行该代码时没有激活图表,则会出现错误。
所以下面这段代码也可能适合你:
getchar()
答案 1 :(得分:1)
因为chart_sheet可能不是工作表,你试试这个吗?
with sheets("chart_sheet")