首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Excel 2013 ribbonx : CustomUI工作正常,但结果按钮拒绝运行我的宏

Excel 2013 ribbonx : CustomUI工作正常,但结果按钮拒绝运行我的宏
EN

Stack Overflow用户
提问于 2014-03-02 00:53:56
回答 1查看 331关注 0票数 1

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

“无法运行宏'AddNodeNew‘。该宏可能在此工作簿中不可用,或者所有宏都被禁用。”

好的,宏AddNodeNew是可用的,并且宏没有被禁用。那么到底是怎么回事呢?注意: xlsm工作簿已经包含了许多其他宏(没有命名为AddNodeNew的宏)。

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

EN

回答 1

Stack Overflow用户

发布于 2020-02-09 03:58:31

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

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

代码语言:javascript
复制
Public Sub Caller(ctrl As IRibbonControl)
    Dim sFunction As String: sFunction = ctrl.ID
    Application.Run sFunction
End Sub
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22117290

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档