【问题标题】:Excel 2013 ribbonx xml: CustomUI works fine but resulting button refuses to run my macroExcel 2013ribbonx xml:CustomUI 工作正常,但生成的按钮拒绝运行我的宏
【发布时间】:2014-03-01 16:53:55
【问题描述】:

使用 customUI 工具将选项卡添加到 Excel 2013 xlsm 工作簿。我正在运行 Windows 7。CustomUI 给了我绿灯(“自定义 UI XML 格式正确!”),并生成回调代码。打开工作簿时会出现新选项卡、新组和新按钮。我将回调代码添加到 VBA 中的 module1。但是当我点击新按钮时,我会收到消息

“无法运行宏 'AddNodeNew'。此工作簿中可能没有该宏,或者可能禁用了所有宏。”

好吧,宏 AddNodeNew 可用,并且宏未被禁用。那么发生了什么? 注意:xlsm 工作簿已经包含许多其他宏(没有一个名为 AddNodeNew)。

我想在此处包含代码,但您的系统不允许我 - 一直告诉我我没有将其正确格式化为代码。但是我确实按它要求的 4 个空格缩进了所有内容,但仍然没有骰子。关于这个主题的帮助不足。

【问题讨论】:

    标签: xml excel ribbonx vba


    【解决方案1】:

    显然 RibbonX 自定义 UI 元素可以调用存储在 VBA 项目的 ThisWorkbook 部分中的宏,但我还没有弄清楚如何从模块中调用宏,然后我了解到我什至不想这样做,因为当模块被重命名时,我需要在自定义 UI 中调整引用。

    所以你可以做的是在 ThisWorkbook 中创建一个调用者,然后调用该函数。我的解决方案是将被调用的函数名称放入 xml 元素 id 属性中,然后在 ThisWorkbook 中有一个 Caller 函数,由所有自定义控件调用。调用时,调用者读取控件 ID 属性并使用该名称调用另一个函数,而不管其物理位置如何。

    Public Sub Caller(ctrl As IRibbonControl)
        Dim sFunction As String: sFunction = ctrl.ID
        Application.Run sFunction
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多