作者lastmile ()
看板Office
標題[問題] VBA散佈圖疊圖如何寫?
時間Wed Dec 20 21:04:46 2017
軟體: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
請問不知有沒有比較好的寫法可以改善呢?
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.21.191.16
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Office/M.1513775089.A.C48.html
※ 編輯: lastmile (211.21.191.16), 12/20/2017 21:05:24
※ 編輯: lastmile (211.21.191.16), 12/20/2017 21:08:29
1F:→ soyoso: 先寫原文的dim i,as string寫法不正確,這裡就會出錯,不 12/20 21:09
2F:→ soyoso: 可能執行到出現1004的錯誤 12/20 21:10
3F:→ soyoso: 變數i初始為0,sheets(i)帶入索引值0,則會出現1004的錯誤 12/20 21:11
4F:→ soyoso: 如以要帶變數的話,寫法類似這樣 12/20 21:20
6F:→ lastmile: 請問要怎麼寫會比較好呢? 本來其實有寫一個x 用i=i+x 12/20 21:21
7F:→ lastmile: 應該這樣說 我不同sheet的東西都要丟進chart overlay中 12/20 21:22
8F:→ lastmile: 來疊圖,chart overlay在最後一頁,所以希望在此之前的 12/20 21:23
10F:→ soyoso: 或工作表名稱,範圍可以字串或以range方式 12/20 21:24
11F:→ lastmile: 的所有data通通都能疊進來 可能10~20多張或是更多 所以 12/20 21:24
12F:→ lastmile: ok,很明顯x軸y軸s大給了一個漂亮的解答 12/20 21:25
13F:→ soyoso: x是變數?還是常數,以回文來看原po是否是寫i=i+1的方式 12/20 21:25
14F:→ soyoso: 如果寫法可以用的上的話,置換一下看是否可順利產生出 12/20 21:27
15F:→ lastmile: 我X設定常數 x=1 i=i+x 然後希望i能從1跳到最後一頁之前 12/20 21:29
16F:→ lastmile: 一個笨蛋寫法 寫+1好像就行了XDD 12/20 21:29
17F:→ lastmile: 繪圖部份我還在調 12/20 21:31
18F:→ lastmile: s大,用您最後一個寫法我用變數i的話會失敗,常數可行 12/20 21:33
20F:→ soyoso: 並無錯誤產生 12/20 21:35
21F:→ soyoso: 看是否在累加上已超過工作表張數 12/20 21:37
22F:→ lastmile: OK 我找到錯誤原因了 我i放的位置沒放對 而且i=i+1可行 12/20 21:38
23F:→ lastmile: 感謝s大,太厲害了。 12/20 21:38