Excel 子例程工作簿\u打开未触发

Excel 子例程工作簿\u打开未触发,excel,vba,Excel,Vba,我试图使用Excel中的工作簿打开例程在打开时执行一些检查。它位于“此工作簿”部分。根据我的调查,这似乎与时间问题有关,好像我重命名文件以获得代码始终运行的“启用内容”按钮。如果它已经是受信任的文档,则不会 我尝试了许多故障排除步骤,例如停止,应用程序。等待,msgbox,关闭屏幕更新,然后在另一个子系统中重新打开,甚至尝试将原来的两行代码删除到一个完全独立的子文件中。我还尝试先打开Excel,然后再打开文档。以下是我目前得到的信息: Private Sub Workbook_Open()

我试图使用Excel中的工作簿打开例程在打开时执行一些检查。它位于“此工作簿”部分。根据我的调查,这似乎与时间问题有关,好像我重命名文件以获得代码始终运行的“启用内容”按钮。如果它已经是受信任的文档,则不会

我尝试了许多故障排除步骤,例如
停止
应用程序。等待
msgbox
,关闭
屏幕更新
,然后在另一个子系统中重新打开,甚至尝试将原来的两行代码删除到一个完全独立的子文件中。我还尝试先打开Excel,然后再打开文档。以下是我目前得到的信息:

Private Sub Workbook_Open()
    Application.OnTime Now, "Continue_Open"
End Sub

Sub Continue_Open()
    'Application.ScreenUpdating = False
    'Application.Wait (Now + TimeValue ("00:00:01"))
    'Stop
    MsgBox "Workbook_Open called"
    'Check that VBA access is switched on
    'based on https://blogs.msdn.microsoft.com/cristib/2012/02/29/vba-how-to-programmatically-enable-access-to-the-vba-object-model-using-macros/
    Call CheckIfVBAAccessIsOn

    'Add new Reference if required.
    Call AddReference
End Sub

即使我在例程中只有
stop
,如果文档可信,它也不会运行。这就是为什么我觉得这可能是一个时间问题,因此我一直试图解决它。所有尝试的步骤都没有区别。

您的
检查ifvbaaccession
添加参考
Subs中有什么?因为如果我在注释这两行时运行这段代码,它会运行得很好,并且我会得到一个带有“Workbook\u Open called”的
MsgBox
,即使我将代码减少到一行
MsgBox“Workbook\u Open called”
如果文档是可信的,它也不会工作。仅供参考
checkifvbaaccession
来自嵌入的URL,并且
AddReference
添加对项目的引用。重新启动电脑后,问题似乎消失了。然而,这让我想知道使用
工作簿_Open
功能有多可靠…这取决于你有什么,我使用它,它工作得很好。但我只将其用于与工作簿事件相关的关键项目,以及我在一个单独模块上拥有的所有其他内容,我称之为
MainInit
,它在需要运行某个宏时触发,而不是在
Open
事件上。希望我能帮上忙