首页 > 解决方案 > 为什么第三个系列之后的任何后续系列都没有添加?

问题描述

我正在尝试绘制 6 系列数据,但我总是得到一个

运行时错误(1004):无效参数

在第四个系列。此代码适用于我以前的项目,但该项目的数据大于当前数据(见下图)。请帮忙。

在此处输入图像描述

Sub CreateChart()

With ActiveSheet.Shapes.AddChart(Left:=10, Width:=250, Top:=100, Height:=320).Chart
    .ChartType = xlXYScatterLinesNoMarkers
    .SetSourceData Source:=Range("A2:G5")
    .ApplyLayout Layout:=8
    .Axes(xlValue).MinimumScale = "0"
    .Axes(xlValue).MaximumScale = "4"
    .SeriesCollection(1).Values = Range("A2:A5")
    .SeriesCollection(1).XValues = Range("B2:B5")
    .SeriesCollection(2).Values = Range("A2:A5")
    .SeriesCollection(2).XValues = Range("C2:C5")
    .SeriesCollection(3).Values = Range("A2:A5")
    .SeriesCollection(3).XValues = Range("D2:D5")
    .SeriesCollection(4).Values = Range("A2:A5")
    .SeriesCollection(4).XValues = Range("E2:E5")
    .SeriesCollection(5).Name = Range("F1")
    .SeriesCollection(5).Values = Range("A2:A5")
    .SeriesCollection(5).XValues = Range("F2:F5")
    .SeriesCollection(6).Values = Range("A2:A5")
    .SeriesCollection(6).XValues = Range("G2:G5")

End With
End Sub

标签: excelvba

解决方案


您的图表 SourceData 未按预期解析:结果仅包含 3 个系列。因此,调用SeriesCollection(4)失败。
尝试在设置 SourceData 时使用PlotBy参数来更改 Excel 分析范围的方式:

    With ActiveSheet.Shapes.AddChart(Left:=10, Width:=250, Top:=100, Height:=320).Chart
        .ChartType = xlXYScatterLinesNoMarkers
        .SetSourceData Source:=Range("A2:G5"), PlotBy:=xlColumns
        '....
    End With

推荐阅读