问题
I've been looking into the underlying structure of object properties and methods in VBA a bit more. I've just read that all properties and methods for each object is listed in the "Object Browser" in the developer box.
The reason why I was prompted to look at this was that I used a method that wasn't listed in the Object Browser. I used:
Sheets("Front face").Shapes("Drop Down 12").ControlFormat
This allowed me to then use .List to change the Shape. However .ControlFormat isn't a property/method listed in Object Browser.
Can anyone explain this?
回答1:
It appears in mine - perhaps you're looking for "Shapes" which is a collection, as opposed to "Shape" which is the actual object?
Detail:
Shapes is a collection of Shape objects - therefore Shapes has properties and methods that relate to a Collection object. Each item in that collection is a Shape object which has the properties and methods of a Shape
回答2:
Besides what MacroMan explained, here is something you should always follow (as a habit)
Work with objects for intellisense to work correctly.
See this Example
Sub Sample()
Dim ws As Worksheet
Dim Shp As Shape
Set ws = Sheets("Front face")
Set Shp = ws.Shapes("Drop Down 12")
End Sub
Now if you do Shp. you will get the .ControlFormat property.
Another example
When you want to access the .Range of a worksheet, you will not get that if you type Activesheet.. For intellisense, again work with objects.
来源:https://stackoverflow.com/questions/32582677/using-object-properties-that-arent-listed-in-object-browser