如何在VBA中更改系列名称

我有一系列使用VBA创build的图表(代码如下)。

我无法将系列名称从系列1和系列2更改为当前状态和解决scheme状态。

我不断得到一个

对象variables或未设置块variables

错误。

但是,如果没有srs1srs2代码,图表就可以正常工作(只有错误的系列名称)。

我查了一下如何解决这个问题,但是我收到的答案并不适合我。
有谁知道另一种方式来做到这一点?

 Sub MA() Dim Srs1 As Series Dim Srs2 As Series Dim i As Integer Dim MAChart As Chart Dim f As Integer f = 2 * Cells(2, 14) For i = 1 To f Step 2 Set MAChart = ActiveSheet.Shapes.AddChart(Left:=750, Width:=400, Top:=130 + 50 * (i - 1), Height:=100).Chart With MAChart .PlotBy = xlRows .ChartType = xlColumnClustered .SetSourceData Source:=ActiveSheet.Range("Q" & 1 + i & ":Z" & 2 + i) .Axes(xlValue).MaximumScale = 4 .Axes(xlValue).MinimumScale = 0 .HasTitle = True .ChartTitle.Text = "Provider Load for " & Cells(i + 1, 15) 'where errors start- works fine up to this point Set Srs1 = ActiveChart.SeriesCollection(1) Srs1.Name = "Current State" Set Srs2 = ActiveChart.SeriesCollection(2) Srs2.Name = "Proposed Solution" End With Next i End Sub 

尝试改变这些行…

  Set Srs1 = ActiveChart.SeriesCollection(1) Srs1.Name = "Current State" Set Srs2 = ActiveChart.SeriesCollection(2) Srs2.Name = "Proposed Solution" 

至 …

  .SeriesCollection(1).Name = "Current State" .SeriesCollection(2).Name = "Proposed Solution" 

您已经在With块中使用了MAChart所以您应该可以像使用其他属性一样访问它的.SeriesCollection(x).Name属性。

我相信问题是引用 – 在代码中你引用ActiveChart(我猜测它不存在),而你已经在上面的代码中创buildMAChart。

  Set Srs1 = MAChart.SeriesCollection(1) Srs1.Name = "Current State" Set Srs2 = MAChart.SeriesCollection(2) Srs2.Name = "Proposed Solution"