如何在VBA中更改系列名称

如何在VBA中更改系列名称,vba,excel,charts,series,Vba,Excel,Charts,Series,我有一系列使用VBA创建的图表(下面的代码) 将系列名称从系列1和系列2更改为当前状态和解决方案状态时遇到问题 我不断收到一封信 对象变量或未设置块变量 错误 但是,如果没有srs1和srs2代码,图表工作正常(只是序列名称错误) 我查看了如何修复此问题,但收到的答案对我无效。 有人知道另一种方法吗 Sub MA() Dim Srs1 As Series Dim Srs2 As Series Dim i As Integer Dim MAChart As Cha

我有一系列使用VBA创建的图表(下面的代码)

将系列名称从系列1和系列2更改为当前状态和解决方案状态时遇到问题

我不断收到一封信

对象变量或未设置块变量

错误

但是,如果没有
srs1
srs2
代码,图表工作正常(只是序列名称错误)

我查看了如何修复此问题,但收到的答案对我无效。
有人知道另一种方法吗

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

我相信问题在于引用——在您引用ActiveChart的代码中(我猜它不存在),而您在上面的代码中创建了MAChart

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

尝试更改这些行

     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).名称
属性,其方式与您对其他属性所做的方式相同。

或仅
设置Srs1=.SeriesCollection(1)
等。没有活动图表。使用
设置Srs1=.SeriesCollection(1)
等。