为什么我的代码适用于ActiveChart而不适用于图表名称?

时间:2016-03-16 12:24:57

标签: vba excel-vba charts excel

目前,我的代码是:

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")。" (显然删除激活图表对象的行)然后代码不起作用。发生了什么?

1 个答案:

答案 0 :(得分:2)

尝试:

V_900_SPC.ChartObjects("Chart 1").Chart.SeriesCollection(1).Values = "='AR Data 900A SPC'!" & chart1values

原因是ChartObjectChart不是同一回事。 ChartObjectChart的容器,SeriesCollection属于Chart

我最近made a post on SO与此相关,它还包含更多信息和示例,以及MSDN链接。