附加散点图数据系列

问题描述 投票:0回答:1

我正在尝试创建一个只有一个系列的散点图,其值来自多行。在我的代码中,我附加了每行的数据,但出现错误。我感谢任何形式的支持。

Private Sub generate_scatterplot()
    Dim oChartObj As ChartObject
    Dim oChart As Chart
    Dim rSourceData As Range

    Set oChartObj = ActiveSheet.ChartObjects.Add(Top:=10, Left:=325, Width:=600, Height:=300)
    Set oChart = oChartObj.Chart

    Set rSourceDataX = Range("A2:C5")
    Set rSourceDataY = Range("D2:F5")
    
    With oChart
        .ChartType = xlXYScatter
        Set s = .SeriesCollection.NewSeries
        s.XValues = ""
        s.Values = ""
        For i = 1 To rSourceDataX.Rows.Count
                s.XValues = "=" & s.XValues & rSourceDataX.Rows(i)
                s.Values = "=" & s.Values & rSourceDataY.Rows(i)
        Next i     
    End With
End Sub

错误:类型不匹配(For 循环内的第一行)

excel vba
1个回答
0
投票

类似这样的:

Sub generate_scatterplot()
    Dim rSourceDataX As Range, rSourceDataY As Range
    Set rSourceDataX = Range("A2:C5")
    Set rSourceDataY = Range("D2:F5")
    Dim aSourceDataX, aSourceDataY, v, i As Long
    
    ReDim aSourceDataX(1 To rSourceDataX.Count) As Double
    ReDim aSourceDataY(1 To rSourceDataY.Count) As Double
    i = 0
    For Each v In rSourceDataX
        i = i + 1
        aSourceDataX(i) = v
    Next v
    i = 0
    For Each v In rSourceDataY
        i = i + 1
        aSourceDataY(i) = v
    Next v
    
    Dim oChartObj As ChartObject
    Set oChartObj = ActiveSheet.ChartObjects.Add(Top:=10, Left:=325, Width:=600, Height:=300)

    With oChartObj.Chart
        .ChartType = xlXYScatter
        With .SeriesCollection.NewSeries
           .XValues = aSourceDataX
           .Values = aSourceDataY
        End With
    End With
    
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.