Объект не поддерживает это действие для раскрывающегося меню в Excel 2011 (Mac OS X)

У меня есть большая рабочая книга Excel, созданная с помощью Office 2010 с некоторым кодом VBA. Кажется, все работает нормально, кроме выпадающих меню. Именно они работают, графически, но

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

выдает ошибку «Объект не поддерживает это действие» (я уверен, что «Drop Down 1» является правильным именем и т. д.), точно, на него правильно ссылаются (например, shape = Me.Shapes(1) работает), но это не похоже ControlFormat. Google не очень помогает; какие-либо предложения?

Я новичок в VBA, поэтому может быть какое-то тривиальное колдовство отладки, о котором я не знаю.

EDIT: я попытался создать новую книгу с фиктивным раскрывающимся меню и выбрать значения во время записи макроса, но это не дало результата (как будто меню никогда не существовало).


person marco    schedule 17.12.2012    source источник
comment
попробуйте ? Me.Shapes(1).Name в ближайшем окне (Ctrl+G), чтобы убедиться, что у вас есть правильное имя в момент возникновения ошибки   -  person SeanC    schedule 17.12.2012


Ответы (1)


Я знаю, что это может звучать разочаровывающе и глупо одновременно, но для Excel 2011 измените строку с

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

to

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 выше соответствующим названием листа.

person Siddharth Rout    schedule 17.12.2012
comment
Есть ли список различий/сравнений между Excel 2010 и Excel 2011 на Mac? - person Larry; 18.12.2012
comment
это абсолютно глупо. большое спасибо! Я НЕ ПОНИМАЮ, как я мог поступить иначе :) - person marco; 18.12.2012
comment
Вы случайно не знаете, почему первый способ не работает на Mac? Есть причина для этого? - person amb110395; 09.08.2016
comment
@ amb110395: Я не знаю, почему это не работает в Excel 2011. Но тогда многие вещи не работают в Excel 2011. Я думаю, MS так закодировала. - person Siddharth Rout; 09.08.2016