[算表] 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