刚刚升级到Excel 2013,我已经将宏从旧的自定义工具栏移动到了自定义功能区菜单。除了一件事,其他所有方法都运行良好。我曾经有一个在AutoOpen上运行的宏,但是也可以通过工具栏上的按钮手动调用它。

我使用有效的Sub myMacro(control As IRibbonControl)从功能区调用宏。但是,如果我在AutoOpen中使用Call myMacro(control As IRibbonControl),则会收到“预期列表分隔符”错误。相反,如果我在AutoOpen中只是Call myMacro(),显然会收到“参数非可选”错误。赶上22!

我知道我可以将代码移到第三个子例程,由功能区和AutoOpen中的两个单独的宏调用,但是在我接受失败并这样做之前,我想知道是否有解决办法。

我已经在网上搜索了有关此问题的解决方案,但找不到任何可以回答我的特定查询的信息。

谢谢

最佳答案

一个简单的代码会有所帮助吗?

Option Explicit

Sub AutoOpen()
    Dim ctl As IRibbonControl

    myMacro ctl
End Sub

Sub myMacro(control As IRibbonControl)
    MsgBox "Hello World"
End Sub

07-26 01:46