簡體   English   中英

“運行時錯誤'1004'無法在隱藏的工作簿上編輯宏。 在“功能區XML”中使用“ onLoad”時,使用“取消隱藏”命令取消隱藏工作簿

[英]“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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM