"Run-time error '1004' Cannot edit a macro on a hidden workbook. Unhide the workbook using the Un



我感觉正在错误地使用" 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':无法在隐藏的工作簿上编辑宏。 使用UNDIND命令UNDED工作簿。

我必须在错误上两次选择"结束"按钮,因为它弹出了两次。

我想我可以理解为什么要丢弃该错误,我的自定义加载项还没有加载自定义的功能区,但是由于主色带已加载,因此它正在尝试运行无法看到的宏。但是,如果我已经可以看到自己的自定义功能区打开了一个工作簿,那么它根本不会运行代码。任何建议都将不胜感激。

经过更多的研究,我发现一个简单的时间延迟一秒钟就完成了。这并不是我想要的,但它有效,所以我决定回答自己的问题。

Sub spRibbon_onLoad(ribbon As IRibbonUI)
    Application.OnTime Now + TimeValue("00:00:01"), "spCode"
End Sub

相关内容

最新更新