2012-12-17 15 views
2

我有一个用Office 2010制作的带有一些VBA代码的大型Excel工作簿。除了下拉菜单,一切看起来都很好。准确地说,他们的工作,以图形方式,但Excel 2011中的下拉菜单中的“对象不支持此操作”(Mac OS X)

Me.Shapes("Drop Down 1").ControlFormat 

抛出一个“对象不支持此操作”错误(我相信“下拉1”是正确的名称等),准确地说,它得到正确引用(例如shape = Me.Shapes(1)作品),但它似乎不喜欢ControlFormat。谷歌没有多大帮助;有什么建议么?

我对VBA相当陌生,所以可能会出现一些我不知道的微不足道的调试巫术。

编辑:我试图创建一个虚拟下拉菜单中选择新的工作簿,并同时录制宏选择的值,但它没有给出结果(这就像菜单中根本不存在)。

+0

试试'? Me.Shapes(1).Name'在即时窗口(Ctrl + G),看看你是否有在点发生错误 – SeanC

+0

+ 1好的问题:) –

回答

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

enter image description here

对于Excel 2011,你将不得不使用(完全限定对象

Sub Sample() 
    With Worksheets("Sheet1").Shapes("Drop Down 1").ControlFormat 
     .AddItem "Sid" 
    End With 
End Sub 

SCREENSHOT

enter image description here

注意:用相关工作表名称替换Sheet1

+0

是否存在的Excel之间的差异/ comparsion的列表中选择正确的名称2010和Excel 2011在Mac上? – Larry

+0

这是绝对愚蠢的。非常感谢你!我不知道我怎么可以这样做,否则:) – marco

+0

你碰巧知道为什么第一种方式无法在Mac工作?是否有一个原因? – amb110395

相关问题