使用Shapes.AddPicture(...)方法將圖片插入到Excel工作表中時,Excel自動爲其指定名稱「圖片1」,「圖片2」等。如何在Excel中獲取Shape的內部名稱
該名稱可用於在Shapes集合(如Shapes.Item(「圖片1」))中獲取對此形狀對象的引用。如果使用名稱框在Excel中更改名稱,則有兩個不同的名稱(或其中一個是鍵/標題),通過該名稱可以引用Shape對象。所以,如果我將名稱更改爲「MyPic」我可以使用任意這些Shapes集合引用形狀:
Shapes.Item("Picture 1")
OR
Shapes.Item("MyPic")
名稱可以使用Shape.Name屬性來訪問在VBA,但我們如何可以訪問其他價值(MyPic),似乎沒有改變內部?
修訂
我所試圖做的是一個單元格鏈接到Excel中的一個畫面。我將圖片數據保存在單元格的評論中。這些是場景:
- 如果我保留圖片名稱(外部名稱),則在同一工作表上覆制粘貼結構將複製名稱,並且單元格將指向相同的結構。
- 如果我保留內部名稱,則複製粘貼到其他工作表將會產生問題,因爲同一內部名稱可能存在於同一工作簿中的某個其他工作表上。
- 如果我拿ID,我將無法從它那裏得到
圖片參考對我來說獲得的內部名稱是很重要的。我有形狀參考,但不知道如何從這個參考獲得內部名稱。
+1:「如果你知道索引,那麼你可以構造」圖片n「替代名稱」 - 這可能並不總是如此,因爲如果索引2處的圖片從Shapes集合中刪除,我們可能會有「圖片3「在索引2處。我不認爲內部名稱會改變以匹配索引。 – A9S6 2010-09-20 00:31:54
如果我在VBA中添加一個Shape,Shapes.AddPicture(...)的返回值會給我參考,所以不需要在這裏做一個Shapes(Count)。另外,對於新創建的對象,內部名稱和顯示名稱都是相同的,所以shape.Name將在那時起作用。問題是如何在稍後使用Shape引用獲取內部名稱(用戶可能已經更改了顯示名稱) – A9S6 2010-09-20 01:02:22
如果您具有對形狀對象的有效引用,則Shape.name將爲您提供其外部名稱。 – 2010-09-20 07:26:38