2016-11-28 21 views
0

Я пытался пересортировать встроенный элемент управления. Используя аналогичный код RibbonX и код VBA, я обнаружил, что некоторые элементы управления могут быть перепрофилированы (например, Paste и FileSave), а некоторые не могут быть перепрофилированы (например, Bold и Underline). Сообщение об ошибке было «Неверное количество аргументов или недопустимое присвоение свойств».Назначение Встроенное управление, но с ошибкой: неправильное количество аргументов или недопустимое присвоение свойств

RibbonX код:

<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"> 
    <commands> 
     <command idMso="Underline" enabled="false"/> 
     <command idMso="Bold" onAction="MyBold"/> 
    </commands> 
</customUI> 

В стандартном модуле VBA:

'Callback for Bold onAction 
Sub MyBold(control As IRibbonControl, ByRef cancelDefault) 
    MsgBox "Hello" 
End Sub 

В Excel, когда я нажал на Жирный управления, я получил сообщение об ошибке:

Wrong number of arguments or invalid property assignment

Поиск в Интернете примеров this site и another site, не дайте мне никаких подсказок.

Наслаждайтесь своими мыслями. Спасибо.

ответ

1

У вас неправильная подпись обратного вызова. Смотрите этот документ: https://msdn.microsoft.com/en-us/library/aa722523%28v=office.12%29.aspx?f=255&MSPPError=-2147217396

Кнопка Жирный фактически является контроль ToggleButton, так что вы должны использовать:

Sub MyBold(control As IRibbonControl, pressed As Boolean, ByRef cancelDefault) 

End Sub 
+0

Большое спасибо, jkpieterse. Теперь это работает. Мой редактор пользовательского интерфейса генерировал мне обратный вызов с неправильным количеством аргументов. –

+0

У меня была такая же проблема, когда я искал твою проблему :-) – jkpieterse