[问题] VBA散布图叠图如何写?

楼主: lastmile (帕妮)   2017-12-20 21:04:46
软件:EXCEL
版本:2010
小鲁目前有很多sheet的data 位置也固定在A1:A100与B1:B100
现在想要在总表上绘制全部分页的叠图
数列名称需采取sheet的名称
x轴参照A1:A100
Y轴参照B1:B100
目前写起来没有办法正确显示数列名称,x轴与y轴的参照也出现执行错误1004
Dim i, As String
Do While i < Sheets.Count
Sheets("Chart Oerlay").Select
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlXYScatterSmooth
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).Name = "=""sheets(i).name"""
ActiveChart.SeriesCollection(1).XValues = "=sheets(i)!$A$1:$A$100"
ActiveChart.SeriesCollection(1).Values = "=sheets(i)!$B$1:$B$100"
Loop
请问不知有没有比较好的写法可以改善呢?
谢谢
作者: soyoso (我是耀宗)   2017-12-20 21:09:00
先写原文的dim i,as string写法不正确,这里就会出错,不可能执行到出现1004的错误变量i初始为0,sheets(i)带入索引值0,则会出现1004的错误如以要带变量的话,写法类似这样https://i.imgur.com/5cP5T0D.png
楼主: lastmile (帕妮)   2017-12-20 21:21:00
请问要怎么写会比较好呢? 本来其实有写一个x 用i=i+x应该这样说 我不同sheet的东西都要丢进chart overlay中来叠图,chart overlay在最后一页,所以希望在此之前的
作者: soyoso (我是耀宗)   2017-12-20 21:23:00
或以 https://i.imgur.com/wLKx0RA.png sheets可带索引值或工作表名称,范围可以字串或以range方式
楼主: lastmile (帕妮)   2017-12-20 21:24:00
的所有data通通都能叠进来 可能10~20多张或是更多 所以ok,很明显x轴y轴s大给了一个漂亮的解答
作者: soyoso (我是耀宗)   2017-12-20 21:25:00
x是变量?还是常数,以回文来看原po是否是写i=i+1的方式如果写法可以用的上的话,置换一下看是否可顺利产生出
楼主: lastmile (帕妮)   2017-12-20 21:29:00
我X设定常数 x=1 i=i+x 然后希望i能从1跳到最后一页之前一个笨蛋写法 写+1好像就行了XDD绘图部份我还在调s大,用您最后一个写法我用变量i的话会失败,常数可行
作者: soyoso (我是耀宗)   2017-12-20 21:35:00
https://i.imgur.com/YqKNlX2.png 测试,以变量写可执行并无错误产生看是否在累加上已超过工作表张数
楼主: lastmile (帕妮)   2017-12-20 21:38:00
OK 我找到错误原因了 我i放的位置没放对 而且i=i+1可行感谢s大,太厉害了。

Links booklink

Contact Us: admin [ a t ] ucptt.com