3

我有一个用 Office 2010 制作的带有一些 VBA 代码的大型 Excel 工作簿。除了下拉菜单外,一切似乎都很好。准确地说,它们以图形方式工作,但是

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

抛出“对象不支持此操作”错误(我确信“Drop Down 1”是正确的名称等),准确地说,它被正确引用(例如shape = Me.Shapes(1)有效)但它似乎不喜欢ControlFormat. 谷歌帮不上什么忙。有什么建议么?

我对 VBA 很陌生,所以可能有一些我不知道的微不足道的调试巫术。

编辑:我尝试使用虚拟下拉菜单创建一个新工作簿,并在录制宏时选择值,但它没有给出任何结果(就像菜单不存在一样)。

4

1 回答 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

它会给你你提到的错误。

截屏

在此处输入图像描述

对于 Excel 2011,您必须使用(完全限定对象

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

截屏

在此处输入图像描述

注意:将Sheet1上面替换为相关的工作表名称。

于 2012-12-17T18:32:12.753 回答