Excel VBA - 从Ribbon和AutoOpen中调用相同的宏

时间:2014-01-05 14:03:58

标签: excel-vba ribbon excel-2013 vba excel

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

我使用Sub myMacro(control As IRibbonControl)从功能区调用我的宏。但是,如果我在AutoOpen中Call myMacro(control As IRibbonControl),我会收到“预期列表分隔符”错误。相反,如果我只是在AutoOpen中Call myMacro(),我显然会得到一个“参数不是可选的”错误。抓住了一点22!

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

我在网上搜索了一个解决方案,但找不到任何可以回答我特定查询的内容。

由于

罗布

1 个答案:

答案 0 :(得分:3)

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

Option Explicit

Sub AutoOpen()
    Dim ctl As IRibbonControl

    myMacro ctl
End Sub

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