使用customUI工具将选项卡添加到Excel2013 xlsm工作簿。我正在运行Windows7。CustomUI给我开了绿灯(“自定义UI XML格式良好!”),并生成回调代码。当我打开工作簿时,会出现“新建”选项卡、“新建”组和“新建”按钮。我在VBA中将回调代码添加到module1中。但是当我点击新建按钮时,我会得到这样的信息
“无法运行宏'AddNodeNew‘。该宏可能在此工作簿中不可用,或者所有宏都被禁用。”
好的,宏AddNodeNew是可用的,并且宏没有被禁用。那么到底是怎么回事呢?注意: xlsm工作簿已经包含了许多其他宏(没有命名为AddNodeNew的宏)。
我想在这里包含代码,但您的系统不允许我-一直告诉我我没有正确地将其格式化为代码。但我确实缩进了它要求的4个空格,仍然没有骰子。在这个主题上的帮助是不够的。
发布于 2020-02-09 03:58:31
显然,RibbonX自定义UI元素可以调用存储在VBA项目的ThisWorkbook部分中的宏,但我还没有弄清楚如何从模块中调用宏,然后我了解到我甚至不想这样做,因为当模块被重命名时,我需要调整自定义UI中的引用。
所以您可以做的是在ThisWorkbook中创建一个调用者,然后它将调用该函数。我的解决方案是将被调用的函数名称放入xml element id属性中,然后在ThisWorkbook中有一个Caller函数,该函数由所有自定义控件调用。调用时,调用者读取控件ID属性,并调用具有该名称的另一个函数,而不管其物理位置如何。
Public Sub Caller(ctrl As IRibbonControl)
Dim sFunction As String: sFunction = ctrl.ID
Application.Run sFunction
End Subhttps://stackoverflow.com/questions/22117290
复制相似问题