看板 Office 關於我們 聯絡資訊
軟體:Excel 版本:2003 各位版友好,這邊有個問題想請教 小弟目前拜訪google大師後,學會用VBA創造圖圖表,目前方法如下 Dim MyChart as ChartObject x=300 : y=16.5 : w=800 : h=500 Set MyChart = Sheet1.ChartObjects.Add(x,y,w,h) MyChart.Name="name" 那這邊有個問題是,假如我重啟這個Excel檔,我該如何偵測這個圖表是否存在? 那有google到的寫法是 (不過這寫法 我執行會錯誤...) Dim targetChart as ChartObject set targetChart = Sheet1.ChartObjects("name") if targetChart is nothing then .... 看起來是在設定另一個chartObject,然後指定他為Sheet1的"name"這個Chart 接著檢查這名為"name"的Chart是否有東西 不過執行上會跑出ChartObjects物件失敗..所以才想請教於版友們 另外有個問題想問的是,當初在google 如何創圖時 有看到也些人寫法是 Set MyChart = Sheet1.ChartObjects(1) 不過我最初用這方法時,也是會跑出ChartObjects物件失敗的錯誤訊息 所以想另外詢問是那個 ChartObjects([index]) 的index是表示甚麼? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.135.101.201 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1586675278.A.692.html
soyoso: 判斷上面加上on error resume next 04/12 15:17
soyoso: index索引值,表該工作表內第幾張圖表,1表第一張 04/12 15:20
先謝謝你的回答 那另外我想詢問,有辦法在創造一個ChartObjects時就給定索引值嗎?? 就像如下,我在set= .......ChartObjects(1).Add 就給定索引值1 Dim MyChart As ChartObject x = 300: y = 16.5: w = 800: h = 500 Set MyChart = Sheet_IncomeAndGraph.ChartObjects(1).Add(x, y, w, h) 不過上述方法會執行錯誤 還是要先set MyChart 才能去設定index 若是的話,請問該如何設定 先謝謝你撥空回答 ※ 編輯: jasonhsu14 (220.135.101.201 臺灣), 04/12/2020 15:34:20
soyoso: 更正,於set targetChart...上方加on error resume next 04/12 15:27
soyoso: 索引值是第幾張,如有二張,那當索引值為1被刪除時,原本 04/12 15:38
soyoso: 索引值為2的圖表這樣就會為1 04/12 15:39
soyoso: 因此索引值在新增圖表時會給予個值,但這個值會因工作表內 04/12 15:43
soyoso: 圖表的刪除時而被調整 04/12 15:43
soyoso: 所以以chartobject.name來命名,來針對該圖表,才不會因刪 04/12 15:46
soyoso: 除而被調整 04/12 15:46
原來 index 會自動調整,所以看來以命名的名稱來判斷比較不會有錯 謝謝你 ※ 編輯: jasonhsu14 (220.135.101.201 臺灣), 04/12/2020 16:10:29