15

我有一个宏,我通过自定义 UI 编辑器添加的选项卡/组/按钮调用 -

<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 错误

出现此错误后,VBA 没有像通常那样打开,如果我打开开发人员控制台然后尝试单击按钮,则 VBA 中的代码不会被指示为问题。

奇怪的是,如果我尝试手动运行宏,它可以正常工作,没有错误。有没有人有任何想法如何解决这个问题?

如果您想查看,这是我在Pastebin中的完整代码。谢谢。

4

1 回答 1

17

start_tla您的 VBA 代码中的回调调用签名错误。

如果您在Custom UI Editor中打开文件,菜单右侧有一个名为Generate Callbacks的按钮。如果您按下它,它将为您的 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()
于 2013-03-14T12:50:29.543 回答