![](/img/trans.png)
[英]Attempting to clear the values in two cells in a different workbook when I close the workbook. Run-time 91 error
[英]“Run-time error '1004' Cannot edit a macro on a hidden workbook. Unhide the workbook using the Unhide command” When using “onLoad” in Ribbon XML
我有一种错误的使用“ 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':无法在隐藏的工作簿上编辑宏。 使用取消隐藏命令取消隐藏工作簿。
然后,我必须在错误上选择两次“结束”按钮,因为它会弹出两次。
我想我能理解为什么会引发该错误,我的自定义加载项尚未加载自定义功能区,但是由于主功能区已加载,因此它试图运行一个宏,因此看不到。 但是,如果我已经打开了一个工作簿,并且我的自定义功能区已经可见,那么它将根本不会运行代码。 任何建议,将不胜感激。
经过更多的研究,我发现只需一秒钟的时间延迟就可以完成此操作。 这不是我一直在寻找的东西,但是它可以工作,所以我决定回答自己的问题。
Sub spRibbon_onLoad(ribbon As IRibbonUI)
Application.OnTime Now + TimeValue("00:00:01"), "spCode"
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.