看板 Office 關於我們 聯絡資訊
軟體: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://www.ptt.cc/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
soyoso: 先寫原文的dim i,as string寫法不正確,這裡就會出錯,不 12/20 21:09
soyoso: 可能執行到出現1004的錯誤 12/20 21:10
soyoso: 變數i初始為0,sheets(i)帶入索引值0,則會出現1004的錯誤 12/20 21:11
soyoso: 如以要帶變數的話,寫法類似這樣 12/20 21:20
soyoso: https://i.imgur.com/5cP5T0D.png 12/20 21:20
lastmile: 請問要怎麼寫會比較好呢? 本來其實有寫一個x 用i=i+x 12/20 21:21
lastmile: 應該這樣說 我不同sheet的東西都要丟進chart overlay中 12/20 21:22
lastmile: 來疊圖,chart overlay在最後一頁,所以希望在此之前的 12/20 21:23
soyoso: 或以 https://i.imgur.com/wLKx0RA.png sheets可帶索引值 12/20 21:23
soyoso: 或工作表名稱,範圍可以字串或以range方式 12/20 21:24
lastmile: 的所有data通通都能疊進來 可能10~20多張或是更多 所以 12/20 21:24
lastmile: ok,很明顯x軸y軸s大給了一個漂亮的解答 12/20 21:25
soyoso: x是變數?還是常數,以回文來看原po是否是寫i=i+1的方式 12/20 21:25
soyoso: 如果寫法可以用的上的話,置換一下看是否可順利產生出 12/20 21:27
lastmile: 我X設定常數 x=1 i=i+x 然後希望i能從1跳到最後一頁之前 12/20 21:29
lastmile: 一個笨蛋寫法 寫+1好像就行了XDD 12/20 21:29
lastmile: 繪圖部份我還在調 12/20 21:31
lastmile: s大,用您最後一個寫法我用變數i的話會失敗,常數可行 12/20 21:33
soyoso: https://i.imgur.com/YqKNlX2.png 測試,以變數寫可執行 12/20 21:35
soyoso: 並無錯誤產生 12/20 21:35
soyoso: 看是否在累加上已超過工作表張數 12/20 21:37
lastmile: OK 我找到錯誤原因了 我i放的位置沒放對 而且i=i+1可行 12/20 21:38
lastmile: 感謝s大,太厲害了。 12/20 21:38