Board logo

標題: [分享] excel 2007 shaperange 無法用 shape type for each [打印本頁]

作者: jarodz    時間: 2012-1-9 01:58     標題: excel 2007 shaperange 無法用 shape type for each

Dim h_shape As Shape
Dim h_shaperange As ShapeRange

Set h_shaperange = Selection.ShapeRange

For Each h_shape in h_shaperange
       ........
Next

上面的程式在excel 2003沒有問題,但是在excel 2007,
h_shape 會是 nothing ,無法收到 shaperange 裡的 shape
目前知道的方法是把 h_shape 宣告成 Object 就可以,如下
Dim h_shape As Object

另外問個問題,如何作型態轉變
把 Object 在變回 Shape?
作者: kimbal    時間: 2012-1-10 19:32

Dim h_shape As Shape
Dim h_shaperange As ShapeRange

Set h_shaperange = Selection.ShapeRange

F ...
jarodz 發表於 2012-1-9 01:58


這個相信是 2007 的一個bug,
2010 已經修正了.

object實際上也轉換了為shape
[attach]9172[/attach]
作者: jarodz    時間: 2012-1-11 13:08

回復 2# kimbal

會這麼問是因為把 Option Explicit,
如果把宣告成 Object 的 shape 當其他 sub routine 的引數(shape) 會有錯誤,
不想因為這個bug把其他已經寫好的 Sub routine 的 As Shape 都改成 As Object,
不知這個 bug 有沒有 patch release?
謝謝。

BR,
Jarod




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)