使用VBA创建散点图,我想使用多个XY系列。
我正在使用seriescollect,该程序仅处理一组数据,而我尝试使用的数据集超过on,则会收到错误消息。
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:应用程序定义的错误或对象定义的错误”
答案 0 :(得分:2)
最初创建一个系列并为其分配值时,却忽略了为第二个系列创建一个新系列。顺便说一句,由于您使用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
希望这会有所帮助!