目前,我的代码是:
Private Sub Worksheet_Activate()
' This Macro Code for this sheet updates the x axis range for the graph in 'Dashboard' automatically
Dim V_900_SPC As Worksheet
Set V_900_SPC = Sheets("AR Data 900A SPC")
Dim chart1values As String, chart1_xvalues As String
chart1values = Cells(2, 10)
chart1_xvalues = Cells(3, 10)
V_900_SPC.ChartObjects("Chart 1").Activate
ActiveChart.SeriesCollection(1).Values = "='AR Data 900A SPC'!" & chart1values
ActiveChart.SeriesCollection(1).XValues = "='AR Data 900A SPC'!" & chart1_xvalues
Cells(1, 1).Activate
End Sub
但是,如果我更换" ActiveChart。"使用" V_900_SPC.ChartObjects("图1")。" (显然删除激活图表对象的行)然后代码不起作用。发生了什么?
答案 0 :(得分:2)
尝试:
V_900_SPC.ChartObjects("Chart 1").Chart.SeriesCollection(1).Values = "='AR Data 900A SPC'!" & chart1values
原因是ChartObject
和Chart
不是同一回事。 ChartObject
是Chart
的容器,SeriesCollection
属于Chart
。
我最近made a post on SO与此相关,它还包含更多信息和示例,以及MSDN链接。