Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA-图表的多个系列_Vba_Excel - Fatal编程技术网

VBA-图表的多个系列

VBA-图表的多个系列,vba,excel,Vba,Excel,我试图通过循环将两个系列添加到一个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

我试图通过循环将两个系列添加到一个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)

但它不起作用

EDIT2:我想出来了。我拿了

 Set chrt = sh.Shapes.AddChart.Chart
跳出循环,并将1替换为q in.SeriesCollection,这是有效的代码

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
有效的代码

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