Подтвердить что ты не робот

Ошибка 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, если вы хотите его просмотреть. Спасибо.

4b9b3361

Ответ 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()