【问题标题】:Creating a scatter plot with multiple series in VBA在 VBA 中创建具有多个系列的散点图
【发布时间】:2019-06-07 04:43:37
【问题描述】:

使用 VBA 创建散点图,我有多个要使用的 XY 系列。

我正在使用 seriescollect 并且该程序仅使用一组数据,我尝试使用更多数据并收到错误消息。

Private Sub generate_scatterplot()

Dim ochartObj As ChartObject
Dim oChart As Chart

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

With oChart
    oChart.ChartType = xlXYScatterSmooth
    oChart.SeriesCollection.NewSeries
    oChart.SeriesCollection(1).XValues = Range("O200:S200")
    oChart.SeriesCollection(1).Values = Range("O201:S201")
    oChart.SeriesCollection(2).XValues = Range("O202:S202")
    oChart.SeriesCollection(2).Values = Range("O203:S203")
End With
End Sub

使用一组数据输出,我只需要更改一些标题,但是当我尝试拥有多个系列时,我收到一条错误消息,上面写着 \

“运行时错误 1004:应用程序定义的或对象定义的错误”

【问题讨论】:

  • 我将有更多的数据集从第 200 行到第 249 行在每行交替 x 和 y 值,还有一种比复制和粘贴 seriescollection 行更简单的方法来编写它跨度>
  • @BigBen 的意思是复制/粘贴您在屏幕截图中的确切代码以供初学者使用……这样更有可能有人提供帮助。

标签: excel vba


【解决方案1】:

虽然您最初创建了一个系列并为其分配了值,但您忽略了为您的第二个系列创建一个新系列。顺便说一句,由于您使用With/End With 语句来引用您的图表,因此您可以使用点 (.) 运算符开始您的线条。试试下面...

Private Sub generate_scatterplot()

    Dim oChartObj As ChartObject
    Dim oChart As Chart
    Dim rSourceData As Range
    Dim i As Long

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

    Set rSourceData = Range("O200:S249")

    With oChart
        .ChartType = xlXYScatterSmooth
        For i = 1 To rSourceData.Rows.Count Step 2
            With .SeriesCollection.NewSeries
                .XValues = rSourceData.Rows(i)
                .Values = rSourceData.Rows(i + 1)
            End With
        Next i
    End With

End Sub

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-30
    • 2013-02-01
    • 2015-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多