Excel加载项 – 获取“本工作簿”的工作簿名称

当我使用加载项时,我无法获取工作簿的名称。

我正在尝试开发每次打开Excel时都会运行的加载项,并读取打开的文件的文件名。

如果文件名是XCFIL.SKV然后做一些事情…

这个代码应该这样做,但不是。 我错过了什么?
代码停止,如果我debugging并按F8它工作正常,但它不会自行运行。

 Private Sub Workbook_Open() If ThisWorkbook.Name = "XCFIL.SKV" Then MsgBox "y" End If End Sub 

背景:
基于这个声明代码停止,如果我debugging并按F8它工作正常,但它不会自行运行。 我认为这个问题依赖于与代码不同步的处理器的速度(自己的经验)。
解:
既然是Excel,问题似乎只依赖于实例本身的打开,你可以使用Application wait或其他任何函数来解决这个问题 。
更多的想法:
生命周期出现在我的脑海里,在这种情况下。 这个网页有一个整洁的Excel实例生命周期图(附加,因为我会试图解释的情况下)

在这里输入图像说明

正如你可能看到的“应用程序”是Excel应用程序的第一个周期,然后是“打开”,之后的“工作簿”对象,可能发生的是,在这个生命周期中,“开放”时没有创build“worbook”玩,所以,你需要等到excel解决这个问题。