一、问题背景: Excel里已有6列数据 D列是时间,E列是对应到D列时间的数据,D列E列为一组等待制成XY散点图表(折线散点图) F列是时间,G列是对应到F列时间的数据,F列G列为一组等待制成XY散点图表(折线散点图) H列是时间,I列是对应到H列时间的数据,H列I列为一组等待制成XY散点图表(折线散点图) 二、问题目标: 我的目的是录制一个宏,成功后只要运行宏即可将D列和E列、F列和G列、H列和I列组合自动制成三个XY散点图表(折线散点图), 三、问题困难: 1、我在录制宏时,选中D列和E列两列后,插入图表,选择XY散点图,确定,录制完后,我发现他是记录下了D列和E列的第一行和最后一行,比如说我录制宏时的D列和E列一共有20行,那么以后我在别的一个10行或者50行的数据下运行宏时,他仍然都是以20行作图表,因此这个录好的宏实际是无用的 2、我录好的宏在运行时只能作为新工作表插入Chart1,不能作为其中的对象插入Sheet1,否则就出现错误 3、三组数据我只能一个一个录制宏,录制三种,无法一个宏就制作三次图表,否则就出现错误
应对办法:
下面这个宏可以完成三个图表的制作,缺点是三个图表叠加在一起,需要手工拖到适当位置。 Sub Macro1() Charts.Add ActiveChart.ChartType = xlXYScatterLines ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("D:E"), PlotBy _ :=xlColumns ActiveChart.SeriesCollection(2).Delete ActiveChart.SeriesCollection(1).XValues = "=Sheet1!C4" ActiveChart.SeriesCollection(1).Values = "=Sheet1!C5" ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1" With ActiveChart .HasTitle = False .Axes(xlCategory, xlPrimary).HasTitle = False .Axes(xlValue, xlPrimary).HasTitle = False End With Charts.Add ActiveChart.ChartType = xlXYScatterLines ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("F:G"), PlotBy _ :=xlColumns ActiveChart.SeriesCollection(2).Delete ActiveChart.SeriesCollection(1).XValues = "=Sheet1!C6" ActiveChart.SeriesCollection(1).Values = "=Sheet1!C7" ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1" With ActiveChart .HasTitle = False .Axes(xlCategory, xlPrimary).HasTitle = False .Axes(xlValue, xlPrimary).HasTitle = False End With Charts.Add ActiveChart.ChartType = xlXYScatterLines ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("H:I"), PlotBy _ :=xlColumns ActiveChart.SeriesCollection(2).Delete ActiveChart.SeriesCollection(1).XValues = "=Sheet1!C8" ActiveChart.SeriesCollection(1).Values = "=Sheet1!C9" ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1" With ActiveChart .HasTitle = False .Axes(xlCategory, xlPrimary).HasTitle = False .Axes(xlValue, xlPrimary).HasTitle = False End With End Sub 注:工作表名为“Sheet1”。
Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved. 闵涛 E_mail:admin@mintao.net(欢迎提供学习资源)
鄂公网安备 42011102001154号
站长:MinTao ICP备案号:鄂ICP备11006601号-18