所以我有一张名为“Dashboard”的工作表,我有几个图表,但每周我都会在这些图表所基于的表格中添加数据。包含此表数据的第二个工作表是“历史总计”,我想要的数据位于A到E列(包括标签和标题)。我正在尝试自动化图表更新,我不知道为什么这不起作用。这是我到目前为止的代码:
Sheets("Dashboard").Select
ActiveSheet.ChartObjects("Chart 4").Activate
ActiveChart.SetSourceData Source:=Sheets("Historical Totals").Range("A1", Range("E1").End(xlDown))
我已经尝试分离我们的范围了,它正在选择合适的数据,所以我真的不知道我在哪里犯了错误。
答案 0 :(得分:3)
尝试以下方法。每次使用Range时都需要参考数据表:
Sheets("Dashboard").ChartObjects("Chart 4").Activate
ActiveChart.SetSourceData _
Source:=Sheets("Historical Totals").Range(Sheets("Historical Totals").Range("A1"), _
Sheets("Historical Totals").Range("E1").End(xlDown))
答案 1 :(得分:0)
假设您只有worksheet
“历史总计”中的表格,我通常会xlUp
而不是xlDown
,但以下内容实际上与Philip A Barnes的答案相同:< / p>
Sub setArea()
With Excel.ActiveWorkbook
'.Sheets("Dashboard").Select '<==no need to select for the code to execute
.Sheets("Dashboard").ChartObjects("Chart 1").Activate
End With
With Excel.ActiveWorkbook.Sheets("Historical Totals")
Excel.ActiveChart.SetSourceData _
Source:=.Range( _
.Cells(1, 1), _
.Cells(.Cells(.Rows.Count, 5).End(Excel.xlUp).Row, 5) _
)
End With
End Sub