我感觉我错误地使用了“onLoad”回调。基本上我要做的是在我的自定义功能区加载后立即在 VBA 中运行一些代码(位于我创建的加载项上)。
这是 XML 代码:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="spRibbon_onLoad">
这是VBA代码:
这是一个全局声明:
Dim grxIRibbonUI
这是我试图运行的代码:
Sub spRibbon_onLoad(ribbon As IRibbonUI)
Set grxIRibbonUI = ribbon
Call spCode 'this is the code I'm attempting to run
End Sub
问题是,如果我尝试打开现有的工作簿(当没有打开其他 excel 实例时),我会收到以下错误:
运行时错误“1004”:无法编辑隐藏工作簿上的宏。使用取消隐藏命令取消隐藏工作簿。
然后我必须在错误上选择两次“结束”按钮,因为它会弹出两次。
我想我可以理解为什么它会抛出该错误,我的自定义加载项尚未加载自定义功能区,但由于主功能区已加载,它正在尝试运行它看不到的宏。但是,如果我已经打开了一个工作簿并且我的自定义功能区已经可见,它根本不会运行代码。任何建议,将不胜感激。