VBA - 将多个系列添加到图表

3

我正在尝试通过循环将两个系列添加到单个XY散点图中。目前,我的代码创建了两个图表。X值是固定的,但Y值会发生变化,因此我将它们添加到数组中以保留它们。

Sub test()
    Dim sh As Worksheet
    Set sh = ThisWorkbook.Sheets("Sheet1")
    Dim thearray(9) As Double
    Dim chrt As Chart
    Dim n As Integer, i As Integer, q As Integer
    For q = 1 To 2
        For i = 0 To 9
            thearray(i) = WorksheetFunction.RandBetween(1, 20)
        Next
        Set chrt = sh.Shapes.AddChart.Chart
        With chrt
            .ChartType = xlXYScatterLines
            .SeriesCollection.NewSeries
            .SeriesCollection(1).Name = "TEST"
            .SeriesCollection(1).XValues = Range("B2:K2")
            .SeriesCollection(1).Values = thearray
            .SeriesCollection(1).MarkerSize = 4
            For n = .SeriesCollection.Count To 2 Step -1
                .SeriesCollection(n).Delete
            Next n
        End With
    Next
End Sub

我很感激你能提供任何帮助。
编辑:我尝试进行更改。
.SeriesCollection(1)

To

.SeriesCollection(q)

但是它不起作用。
编辑2:我解决了。我取出了


 Set chrt = sh.Shapes.AddChart.Chart

在.SeriesCollection中,将1替换为q并且跳出循环。

1个回答

4
运行良好的代码。
Sub test()
    Dim sh As Worksheet
    Set sh = ThisWorkbook.Sheets("Sheet1")
    Dim thearray(9) As Double
    Dim chrt As Chart
    Dim n As Integer, i As Integer, q As Integer
    Set chrt = sh.Shapes.AddChart.Chart
    For q = 1 To 2
        For i = 0 To 9
            thearray(i) = WorksheetFunction.RandBetween(1, 20)
        Next
        With chrt
            .ChartType = xlXYScatterLines
            .SeriesCollection.NewSeries
            .SeriesCollection(q).Name = "HFF " & q
            .SeriesCollection(q).XValues = Range("B2:K2")
            .SeriesCollection(q).Values = thearray
            .SeriesCollection(q).MarkerSize = 4
            For n = .SeriesCollection.Count To 3 Step -1
                .SeriesCollection(n).Delete
            Next n
        End With
    Next
End Sub

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接