确定工作簿打开的触发器

有没有办法确定如何触发WorkbookOpen事件? 它可以区分之间的代码或鼠标点击在Windows资源pipe理器或文件 – >打开?

我有几个工作簿与打开多个文件,然后触发workbookOpen事件的macros。 如果通过代码触发,我不希望workbookOpen事件触发。 当我通过鼠标点击打开它们时,我确实希望它被触发。

把类似的东西

If Dir(wb.Path & "\debug.txt") <> "" Then Exit Sub 

在打开的事件中保留一个名为“debug.txt”的空文件是不够的,因为macros打开的工作簿共享相同的目录。 我目前的workbookOpen事件如下。

 Private Sub AppEvent_WorkbookOpen(ByVal wb As Excel.Workbook) If wb.VBProject.Protection <> 1 Then Exit Sub End If Call unlockVBA(wb) End Sub 

也许有这个API? 我在64位。

使用Application.EnableEvents属性来禁用事件,打开工作簿,然后再次打开事件。

 Application.EnableEvents = False ' Open the workbooks ... Application.EnableEvents = True