【问题标题】:Excel VBA - call same macro from both Ribbon and AutoOpenExcel VBA - 从功能区和自动打开调用相同的宏
【发布时间】:2014-01-22 22:36:09
【问题描述】:

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

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

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

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

谢谢

罗伯

【问题讨论】:

  • 即使您找到了答案,也请考虑使用“第三个子程序”方法。调试起来更容易,而且对未来的维护也不会那么混乱。
  • 好点道格,下面的提示有效,但我也会考虑你的建议。正如你所说,调试会更容易知道谁从哪里调用了什么!

标签: excel ribbon excel-2013 vba


【解决方案1】:

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

Option Explicit

Sub AutoOpen()
    Dim ctl As IRibbonControl

    myMacro ctl
End Sub

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

【讨论】:

    猜你喜欢
    • 2011-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-28
    相关资源
    最近更新 更多