我一直在研究VBA中的對象屬性和方法的基礎結構。我剛剛閱讀過,每個對象的所有屬性和方法都列在開發者框的「對象瀏覽器」中。使用對象瀏覽器中未列出的對象屬性
我被提示查看這個的原因是我使用了未在對象瀏覽器中列出的方法。我用:
Sheets("Front face").Shapes("Drop Down 12").ControlFormat
這讓我然後使用.List來改變形狀。但是.ControlFormat不是在對象瀏覽器中列出的屬性/方法。
任何人都可以解釋這一點嗎?
我一直在研究VBA中的對象屬性和方法的基礎結構。我剛剛閱讀過,每個對象的所有屬性和方法都列在開發者框的「對象瀏覽器」中。使用對象瀏覽器中未列出的對象屬性
我被提示查看這個的原因是我使用了未在對象瀏覽器中列出的方法。我用:
Sheets("Front face").Shapes("Drop Down 12").ControlFormat
這讓我然後使用.List來改變形狀。但是.ControlFormat不是在對象瀏覽器中列出的屬性/方法。
任何人都可以解釋這一點嗎?
它出現在我的 - 也許你要尋找的「形狀」,這是一個集合,而不是「形」,這是實際的對象?
詳情:
Shapes
是Shape
的集合對象 - 因此Shapes
具有涉及Collection
對象屬性和方法。該集合中的每個項目都是一個Shape
對象,它具有的屬性和的Shape
++很好完成:) –
謝謝宏人!是的,我在看形狀而不是形狀。似乎我現在需要查看集合對象,然後查看哪些對象是集合對象,哪些不是... –
一般而言,任何_plural_都是_singular_版本的集合。 'Workbooks()','Worksheets()'(又名'Sheets()'),'Shapes()'分別是'Workbook','Worksheet'和'Shape'對象的集合。 –
再說什麼的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.
。對於智能感知,再次使用對象。
也許如果/當文檔之王發表關於對象/智能感知/早期綁定的文章會爲很多人節省很多時間! –
剛剛碰到這個評論,然後對自己對文檔有點微笑...... \ *笑* \ * –
僅供參考,您可能希望尋找到工作表的'Dropdowns'集 - 在默認情況下,對象瀏覽器是*不*顯示;您必須右鍵單擊並選擇顯示隱藏的成員。 – Rory