Ошибка VBA "Неверное количество аргументов или недопустимых присвоений свойств" при запуске макроса с помощью настраиваемой кнопки
У меня есть макрос, который я вызываю с помощью кнопки tab/group/, добавленной редактором пользовательского интерфейса -
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon startFromScratch="false">
<tabs>
<tab id="tabCustomActions" label="Custom ActionsXXX" insertAfterMso="TabDeveloper">
<group id="GroupTLA" label="TLA Actions">
<button id="buttonFormatTLA" label="Format as TLA" image="TLALogo" size="large" onAction="start_tla" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>
Кнопка отображается просто отлично, с моим пользовательским логотипом, но когда я нажимаю кнопку, я получаю следующую ошибку -
![VBA Error]()
VBA не открывается после этой ошибки, как обычно, и никакой код внутри VBA не указывается как проблема, если я открою консоль разработчика, а затем попробую и нажмите кнопку.
Странно, хотя, если я попытаюсь запустить макрос вручную, он отлично работает без ошибок. Есть ли у кого-нибудь идеи, как это решить?
Вот мой полный код в Pastebin, если вы хотите его просмотреть. Спасибо.
Ответы
Ответ 1
У вас есть неправильная сигнатура вызова для обратного вызова start_tla
в коде VBA.
Если вы откроете свой файл в редакторе пользовательского интерфейса, в меню появится кнопка с именем Сгенерировать обратные вызовы. Если вы нажмете на него, это даст вам правильные обратные вызовы для вашего кода VBA, чтобы соответствовать ленте xml в вашем файле:
'Callback for buttonFormatTLA onAction
Sub start_tla(control As IRibbonControl)
'Your code goes here
End Sub
В соответствии с ссылкой Pastebin ваш sub выглядит так, без параметра control As IRibbonControl
:
Public Sub start_tla()