在excel中使用vba绘制43 xy散点图
我需要在excel中使用VBA绘制43个x/y散点图我为一个图形开发了此代码,我不确定如何将其应用于绘制剩余的42个图形我的意思是我不想手动更改数据范围我需要将其放入for循环或类似的东西中。这是我的密码在excel中使用vba绘制43 xy散点图,vba,draw,Vba,Draw,我需要在excel中使用VBA绘制43个x/y散点图我为一个图形开发了此代码,我不确定如何将其应用于绘制剩余的42个图形我的意思是我不想手动更改数据范围我需要将其放入for循环或类似的东西中。这是我的密码 Sub draw() ActiveSheet.Shapes.AddChart2(240, xlXYScatterSmoothNoMarkers).Select ActiveChart.SeriesCollection.NewSeries ActiveChart.Ful
Sub draw()
ActiveSheet.Shapes.AddChart2(240, xlXYScatterSmoothNoMarkers).Select
ActiveChart.SeriesCollection.NewSeries
ActiveChart.FullSeriesCollection(1).Name = "=""HBES"""
ActiveChart.FullSeriesCollection(1).XValues = "=EN!$G$253:$G$278"
ActiveChart.FullSeriesCollection(1).Values = "=EN!$H$253:$h$278"
ActiveChart.SeriesCollection.NewSeries
ActiveChart.FullSeriesCollection(2).Name = "=""NHBES"""
ActiveChart.FullSeriesCollection(2).XValues = "=EN!$G$253:$G$278"
ActiveChart.FullSeriesCollection(2).Values = "='EN1'!$g$253:$g$278"
ActiveChart.SeriesCollection.NewSeries
ActiveChart.FullSeriesCollection(3).Name = "=""NHBCS"""
ActiveChart.FullSeriesCollection(3).XValues = "=EN!$G$253:$G$278"
ActiveChart.FullSeriesCollection(3).Values = "=EN1c!$g$253:$g$278"
ActiveChart.SeriesCollection.NewSeries
ActiveChart.FullSeriesCollection(4).Name = "=""HBCS"""
ActiveChart.FullSeriesCollection(4).XValues = "=EN!$G$253:$G$278"
ActiveChart.FullSeriesCollection(4).Values = "=ENC!$h$253:$h$278"
With ActiveChart
'chart name
.HasTitle = True
.ChartTitle.Characters.Text = "Expected Number of Blockages for Pipes Group Two in Condition State One"
'X axis name
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Time (Years)"
'y-axis name
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Expected Number of Blockages"
End With
End Sub
请注意,数据是按列排列的,因此对于下一张图纸,我应该将这一行从
ActiveChart.FullSeriesCollection(1).Values = "=EN!$H$253:$H$278"
将来
ActiveChart.FullSeriesCollection(1).Values=“=EN!$I$253:$I$278”
剩下的三个系列也是一样的,x范围对于所有绘制的图形都是恒定的
ActiveChart.FullSeriesCollection(3).XValues = "=EN!$G$253:$G$278"
我希望这是清楚的
提前谢谢为什么没有人回答?来吧,伙计们,我不认为这是不可能做到的。请帮我写一个包含列的数组,然后在代码中循环数组的长度。修改代码只需要以下内容:“=En!$”&ColArr(i)和“$253:$”&ColArr(i)和“$278”。colArr=Arr(“A”、“B”、“C”、“D”…),我建议您也这样做:Coll1=ActiveChart.FullSeriesCollection(1),Coll2=ActiveChart.FullSeriesCollection(2)等等。少一点打字;)