通过vba给excel散点图自动添加系列

第一个系列b2:c2是x值,d2:e2是y值。第二个系列b3:c3是x值,d3:e3是y值。请问如何通过VBA给散点图中批量添加系列,直到第17行。

1.如下图B:C两列是一组数据,E:F两列是另一组数据,制作方法如下:

2.选择B:C两列数据,不要带标题部分,插入散点图:

 3.修改一下坐标轴标签的位置,将XY轴的标签分别置于最低部和最左侧,此时的图表如下:

4.在绘图区域中右键选择:选择数据,并在弹出的对话框中选择:添加

5.分别将E列数据添加到X轴系列值,F列数据添加了Y轴系列值,并单击确定即可,此时原对话框中多出了一个:系列2,点击确定完成数据的添加。

6.如下图:两个系列的散点图表即完成了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-26
录了一个宏,你自己看:
Sub Macro1()
ActiveSheet.ChartObjects("图表 1").Activate
ActiveChart.ChartArea.Select
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(2).XValues = "=Sheet3!R1C3:R6C3"
ActiveChart.SeriesCollection(2).Values = "=Sheet3!R1C5:R6C5"
ActiveChart.SeriesCollection(2).Name = "系列2"
End Sub

这样更简单:
Sub Macro11()
ActiveSheet.ChartObjects("图表 1").Activate
ActiveChart.ChartArea.Select
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(2).XValues = Range("D1:D6")
ActiveChart.SeriesCollection(2).Values = Range("E1:E6")
ActiveChart.SeriesCollection(2).Name = "系列2"
End Sub本回答被网友采纳
第2个回答  2011-09-27
好像没有直接的方法,但是可以用vba。
PS:使用方法:按住ALT依次按F11,I,M;将代码粘贴至右侧窗口后按F5运行。
如果图表名称、数据系列不同,请根据实际修改。

Sub 数据标签修改()
R = 0 '如果姓名从A列第N行开始,将0改为N-1
ActiveSheet.ChartObjects("图表 1").Activate
ActiveChart.SeriesCollection(1).ApplyDataLabels ShowSeriesName:=True
For Each P In ActiveChart.SeriesCollection("系列1").DataLabels
P.Select
R = R + 1
Selection.Text = "=sheet1!r" & R & "c1"
Next
End Sub
第3个回答  2015-10-11
可以尝试如下的代码:
Sub Test1()

Dim sh As Worksheet

Dim co As ChartObject

Set sh = Sheets("Sheet1")

'删除Sh中的嵌入图表

For Each co In sh.ChartObjects

co.Delete

Next

'表达式.Add(Left, Top, Width, Height)

Set co = sh.ChartObjects.Add([D4].Left, [D4].Top, 300, 300)

With co.Chart

.SetSourceData Source:=sh.Range("A1:B10")

.ChartType = xlXYScatterSmooth '有数据点平滑线散点图

.Legend.Delete

'x轴

With .Axes(xlCategory)

.MinimumScale = [B2] '最小值

.MaximumScale = [B2].End(xlDown) '最大值

.MajorUnit = 1

End With

'y轴

With .Axes(xlValue)

.MinimumScale = [B2]

.MaximumScale = [B2].End(xlDown)

.MajorUnit = 1

.MajorGridlines.Delete '删除主要网格线

End With

End With

End Sub

Sub 宏4()

Range("A1:B10").Select

ActiveSheet.Shapes.AddChart.Select

ActiveChart.ChartType = xlXYScatterSmooth

ActiveChart.SetSourceData Source:=Range("Sheet1!$A$1:$B$10")

ActiveChart.Axes(xlValue).MinimumScale = -9

ActiveChart.Axes(xlValue).MaximumScale = 9

ActiveChart.Axes(xlValue).MajorUnit = 1

ActiveChart.Axes(xlCategory).MinimumScale = -9

ActiveChart.Axes(xlCategory).MaximumScale = 9

ActiveChart.Axes(xlCategory).MajorUnit = 1

ActiveChart.Axes(xlValue).MajorGridlines.Delete

End Sub
相似回答