项目分组时,无法通过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
希望能帮助任何可能遇到这个问题的人!