[算表] VBA 偵測圖表是否存在

作者: jasonhsu14 (小健人)   2020-04-12 15:07:56
軟體: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是表示甚麼?
作者: soyoso (我是耀宗)   2020-04-12 15:17:00
判斷上面加上on error resume nextindex索引值,表該工作表內第幾張圖表,1表第一張更正,於set targetChart...上方加on error resume next索引值是第幾張,如有二張,那當索引值為1被刪除時,原本索引值為2的圖表這樣就會為1因此索引值在新增圖表時會給予個值,但這個值會因工作表內圖表的刪除時而被調整所以以chartobject.name來命名,來針對該圖表,才不會因刪除而被調整

Links booklink

Contact Us: admin [ a t ] ucptt.com