[問題] 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