[算表] VBA 循环作图求助

楼主: van6499 (KIDD)   2018-12-26 11:40:34
软件: Microsoft Excel
版本: 2010
小弟手上有笔资料,想以VBA作XY散布图
A栏为日期,B栏至Q栏带有XY资料
假设A3有一日期,则B3~Q3为X轴资料,B2~Q2为Y轴资料
目前测试可以做出单张图为图表分页(code如下)
Dim chartA As Chart
Set chartA = Charts.Add
With chartA
.ChartType = xlXYScatter
.HasTitle = True
.ChartTitle.Text = "=Plot1!A3"
.SeriesCollection.NewSeries
.SeriesCollection(1).XValues = "=Plot1!B3:Q3"
.SeriesCollection(1).Values = "=Plot1!B2:Q2"
End With
End Sub
但是A栏有很多笔日期资料,但是每一笔的间隔列数不一定
想将上面的code改写为if+循环的形式,一次做出很多张图表分页
想改写成如下的框架
Dim i as interger
For i = 1 to 30 只搜寻A1~A30
if range("A"& i)>0 如果A1有日期
Chart.Add. 增加图表分页
With Chart. 指定图表XY来源与图表格式,表标题为A栏日期
.ChartType = xlXYScatter
.HasTitle = True
.ChartTitle.Text = "=Plot1!A"&"i"
.SeriesCollection.NewSeries
.SeriesCollection(1).XValues = Bi:Qi
.SeriesCollection(1).Values = B(i-1):Q(i-1)
else
next i 如果A1没有日期就往下找A2,直到A30
end if
但是怎么写都有问题,想请有经验的大大指点一下
作者: soyoso (我是耀宗)   2018-12-26 11:49:00
interger没这个资料类型,是integer才是因接来会增加图表分页 if range("A"&i)>0的方面range要配合worksheets(资料来源工作表名).range或sheets(..).rangeif..then..end if少了thenBi:Qi改为"资料工作表名称!b" & i & ":q" & i另外i从1起?那i-1=0,工作表内因不会有这个列号,就会产生错误next i写在end if下方其他如增加图表分页因是上方charts.add而不是chart.addchart.add.和with chart. 最后的.(点号)也不是正确写法
楼主: van6499 (KIDD)   2018-12-26 12:15:00
其他错误我大概了解,可以请教S大chart.add与with chart是后面都不用加.吗?因为我不确定多张chart是否还要一个变量去表示 抱歉真新手的code伤眼睛
作者: soyoso (我是耀宗)   2018-12-26 12:17:00
回文的后面为chart.add.(←)和with chart.(←)该处不用加写法如上面set chartA =charts.add 和 with chartA 后面是不用加上点号的
楼主: van6499 (KIDD)   2018-12-26 14:17:00
感谢S大,调整后已经可以实行,非常感谢

Links booklink

Contact Us: admin [ a t ] ucptt.com