使用对象浏览器中未列出的对象属性

Mr.*_*eks 4 methods excel vba object excel-vba

我一直在研究VBA中对象属性和方法的底层结构.我刚刚读到,每个对象的所有属性和方法都列在开发人员框中的"对象浏览器"中.

我被提示查看这个的原因是我使用了一个未在对象浏览器中列出的方法.我用了:

Sheets("Front face").Shapes("Drop Down 12").ControlFormat
Run Code Online (Sandbox Code Playgroud)

这允许我然后使用.List来改变Shape.但是.ControlFormat不是对象浏览器中列出的属性/方法.

有谁能解释一下?

Sam*_*Sam 7

在此输入图像描述

它出现在我的 - 也许你正在寻找一个集合的"形状",而不是作为实际对象的"形状"?


详情:

Shapes是一个集合Shape对象-因此Shapes具有涉及的属性和方法Collection的对象.该集合中的每个项目都是具有a Shape的属性和方法的对象Shape


Sid*_*out 5

除了MacroMan解释的内容之外,这里还有一些你应该遵循的习惯(作为习惯)

使用intellisense对象正常工作.

请参阅此示例

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

    Set ws = Sheets("Front face")
    Set Shp = ws.Shapes("Drop Down 12")
End Sub
Run Code Online (Sandbox Code Playgroud)

如果你这样做,Shp.你将获得该.ControlFormat物业.

另一个例子

当您想要访问.Range工作表时,如果键入,则无法获得该工作表Activesheet..对于intellisense,再次使用对象.

在此输入图像描述