Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 在功能区中添加自定义选项卡_Excel_Vba - Fatal编程技术网

Excel 在功能区中添加自定义选项卡

Excel 在功能区中添加自定义选项卡,excel,vba,Excel,Vba,我正在努力学习新的东西。我根据Siddharth Rout的教程创建了一个自定义选项卡。 XML部分是这样的 首先,正如freeflow已经提到的,回调应该是RibbonLoad。其次,您应该使用ActivateTab方法,因为它是一个自定义选项卡。第三,您应该指定控件ID,而不是选项卡名称。请尝试以下代码,这些代码需要放在常规模块中 Private myRibbon As IRibbonUI 'Callback for customUI.onLoad Sub RibbonOnLoad(ri

我正在努力学习新的东西。我根据Siddharth Rout的教程创建了一个自定义选项卡。 XML部分是这样的


首先,正如freeflow已经提到的,回调应该是
RibbonLoad
。其次,您应该使用ActivateTab方法,因为它是一个自定义选项卡。第三,您应该指定控件ID,而不是选项卡名称。请尝试以下代码,这些代码需要放在常规模块中

Private myRibbon As IRibbonUI

'Callback for customUI.onLoad
Sub RibbonOnLoad(ribbon As IRibbonUI)

    Set myRibbon = ribbon
    myRibbon.ActivateTab "MyCustomTab"

End Sub

首先,CustomUI的OnLoad和OnAction项指定将调用的VBA方法的名称。因此,您的“Sub-OnLoad(…..”方法确实需要是“Sub-ribbonnload(…)我尝试了
ribbonnload
并保存了closed wb,然后我得到了相同的错误。我尝试更改
myRibbon.ActivateTab(“MyTab”)
并删除了so部分,保存了一个已关闭的文件,然后我收到了相同的错误。您是否使用CustomUI编辑器?很抱歉,我正在观看一部电视剧。这就是我建议创建一个问题而不是在评论中跟进的原因。这样,无论谁在线并且可以回答,都会回答您的问题。很高兴问题得到解决!:)@悉达多非常感谢你。我真的很喜欢你的精彩文章。把代码放在标准模块还是这个工作簿打开事件中更好。。?当前我正在将其放入工作簿打开事件中。当我将其放入工作簿打开时,我收到了相同的错误。然后我尝试了其他方法,将代码放入标准模块,并将私有转换为公共。这工作,没有错误,但我没有得到自定义标签激活。非常感谢。现在解决了。如果使用的是选项卡ID而不是选项卡名称,则我错过了备注。但是如果我需要使用选项卡名称呢?您可以设置一个Select Case语句来返回一个变量并为其分配相应的控件ID。然后您可以将该变量传递给ActivateTab方法。不过,在这种情况下,我认为这是不实际的<代码>RibbonLoad在打开工作簿时自动运行。因此,您要么硬编码选项卡名称,要么提示用户。但是,如果您要硬编码选项卡名称,为什么不直接使用ID。或者,如果您要提示用户,那么它有多实用?