我有一个使用Office 2010制作的大型Excel工作簿和一些VBA代码。除了下拉菜单外,一切似乎都很好。确切地说,它们以图形方式工作,但
Me.Shapes("Drop Down 1").ControlFormat
抛出“对象不支持此操作”错误(我确信“Drop Down 1”是正确的名称等),确切地说,它被正确引用(例如shape = Me.Shapes(1)
有效)但是它似乎不喜欢ControlFormat
。谷歌没有多大帮助;有什么建议吗?
我对VBA很陌生,所以可能会有一些我不知道的琐碎调试巫术。
编辑:我尝试创建一个带有虚拟下拉菜单的新工作簿,并在录制宏的同时选择值,但它没有结果(就像菜单从未存在过)。
答案 0 :(得分:2)
我知道这听起来有点令人沮丧和愚蠢,但对于Excel 2011,更改行
Me.Shapes("Drop Down 1").ControlFormat
到
Worksheets("Sheet1").Shapes("Drop Down 1").ControlFormat
例如
这将在Excel 2010中有效,但在Excel 2011中无效
Sub Sample()
With Me.Shapes("Drop Down 1").ControlFormat
.AddItem "Sid"
End With
End Sub
它会告诉你你提到的错误。
<强> SCREENSHOT 强>
对于Excel 2011,您必须使用(完全限定对象)
Sub Sample()
With Worksheets("Sheet1").Shapes("Drop Down 1").ControlFormat
.AddItem "Sid"
End With
End Sub
<强> SCREENSHOT 强>
注意:将上面的Sheet1
替换为相关的工作表名称。