项目分组时,无法通过VBA访问Excel窗体对象

无论如何,当它被分组时,是否可以访问(通过VBA)表单对象的属性(使用2007年之前的表单工具栏,以及2007年的开发人员选项卡/插入/表单控件)?

例如,通常您可以使用以下代码访问Spinner控件的最大属性:

Sheet1.Spinners("Spinner 1").Max 

要么

 Sheet1.Shapes("Spinner 1").ControlFormat.Max 

据我所知,访问已分组项目的唯一方法是使用形状集合,例如:

 Sheet1.Shapes("Group 1").GroupItems("Spinner 1") 

问题是,当我试图访问该控件的属性,如

 Sheet1.Shapes("Group 1").GroupItems("Spinner 1").ControlFormat.Max 

我得到以下错误:运行时错误“1004”:无法获得微调类的Max属性。

看起来像一个非常简单的问题,但我有点卡住了。 也许有一种方法将对象投射到一个微调控制对象,然后访问它?

有什么build议么?

[编辑:我错了。 这将工作的唯一方法是使用select。 以下代码将起作用:

 Sheet1.Shapes("Group 1").GroupItems("Spinner 1").Select Selection.Max = 20 

显然这并不理想。 任何进一步的援助将是盛大的。]

经过一番哄堂大笑之后,我已经弄清楚了这一点。 要访问分组的表单控件,您需要使用GroupObjects集合(隐藏成员):

 Sheet1.GroupObjects("Group 1").ShapeRange.GroupItems("Spinner 1").ControlFormat.Max 

希望能帮助任何可能遇到这个问题的人!