2015-09-15 84 views
4

我一直在研究VBA中的對象屬性和方法的基礎結構。我剛剛閱讀過,每個對象的所有屬性和方法都列在開發者框的「對象瀏覽器」中。使用對象瀏覽器中未列出的對象屬性

我被提示查看這個的原因是我使用了未在對象瀏覽器中列出的方法。我用:

Sheets("Front face").Shapes("Drop Down 12").ControlFormat 

這讓我然後使用.List來改變形狀。但是.ControlFormat不是在對象瀏覽器中列出的屬性/方法。

任何人都可以解釋這一點嗎?

+0

僅供參考,您可能希望尋找到工作表的'Dropdowns'集 - 在默認情況下,對象瀏覽器是*不*顯示;您必須右鍵單擊並選擇顯示隱藏的成員。 – Rory

回答

7

enter image description here

它出現在我的 - 也許你要尋找的「形狀」,這是一個集合,而不是「形」,這是實際的對象?


詳情:

ShapesShape集合對象 - 因此Shapes具有涉及Collection對象屬性和方法。該集合中的每個項目都是一個Shape對象,它具有的屬性和的Shape

+1

++很好完成:) –

+0

謝謝宏人!是的,我在看形狀而不是形狀。似乎我現在需要查看集合對象,然後查看哪些對象是集合對象,哪些不是... –

+0

一般而言,任何_plural_都是_singular_版本的集合。 'Workbooks()','Worksheets()'(又名'Sheets()'),'Shapes()'分別是'Workbook','Worksheet'和'Shape'對象的集合。 –

5

再說什麼的macroman解釋的方法,這裏是你應該始終遵循(作爲一種習慣)

與智能感知對象工作正常工作

查看此示例

Sub Sample() 
    Dim ws As Worksheet 
    Dim Shp As Shape 

    Set ws = Sheets("Front face") 
    Set Shp = ws.Shapes("Drop Down 12") 
End Sub 

現在,如果你這樣做Shp.你會得到.ControlFormat財產。

又如

當你要訪問一個工作表的.Range,你不會得到,如果你鍵入Activesheet.。對於智能感知,再次使用對象。

enter image description here

+1

也許如果/當文檔之王發表關於對象/智能感知/早期綁定的文章會爲很多人節省很多時間! –

+1

剛剛碰到這個評論,然後對自己對文檔有點微笑...... \ *笑* \ * –