2014-07-15 53 views
0

我想通过循环将两个系列添加到单个XY散点图表。目前,我的代码创建了两个图表。 X值是恒定的,但Y值改变,所以我将它们添加到数组中以保存它们。VBA - 多个系列到图表

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) 

.SeriesCollection(q) 

但它不工作。

编辑2:我想通了。我把

Set chrt = sh.Shapes.AddChart.Chart 

循环之外,并.SeriesCollection

符合Q取代1

回答

1

,工程的代码。

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