Excel加载项 - 获取“thisworkbook”的工作簿名称

时间:2016-11-10 13:40:16

标签: excel excel-vba excel-addins vba

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

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

如果文件名是XCFIL.SKV,那就做点什么......

这段代码应该这样做,但事实并非如此。我错过了什么?
代码停止,如果我调试并按F8它工作正常,但它不会自己运行。

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

End Sub

1 个答案:

答案 0 :(得分:2)

<强> 背景:
基于此声明代码停止,如果我调试并按F8它工作正常,但它不会自行运行。我认为问题依赖于处理器的速度这与代码不同步(自己的经验)。 的
解决方案:

由于它是Excel并且问题似乎仅依赖于实例本身的开放,因此您可以使用Application wait any of the other functions for this matter
进一步的想法:
在这种情况下,我会想到生命周期。 This web page有一个整洁的excel实例生命周期图(附件,因为我将尝试解释这个场景)

enter image description here

正如您所看到的,“应用程序”是Excel应用程序的第一个循环,然后是“打开”,在“工作簿”对象之后,可能会发生在此生命周期中“未打开”时“未打开” “来玩,因此,你需要等到excel解决这个问题。