使用加载项时无法获取工作簿的名称。
我正在尝试开发一个加载项,每次打开Excel时都会运行该加载项并读取打开文件的文件名。
如果文件名是XCFIL.SKV
,那就做点什么......
这段代码应该这样做,但事实并非如此。我错过了什么?
代码停止,如果我调试并按F8它工作正常,但它不会自己运行。
Private Sub Workbook_Open()
If ThisWorkbook.Name = "XCFIL.SKV" Then
MsgBox "y"
End If
End Sub
答案 0 :(得分:2)
<强> 背景: 强>
基于此声明代码停止,如果我调试并按F8它工作正常,但它不会自行运行。我认为问题依赖于处理器的速度这与代码不同步(自己的经验)。
的
解决方案: 强>
由于它是Excel并且问题似乎仅依赖于实例本身的开放,因此您可以使用Application wait 或any of the other functions for this matter。
进一步的想法:
在这种情况下,我会想到生命周期。 This web page有一个整洁的excel实例生命周期图(附件,因为我将尝试解释这个场景)
正如您所看到的,“应用程序”是Excel应用程序的第一个循环,然后是“打开”,在“工作簿”对象之后,可能会发生在此生命周期中“未打开”时“未打开” “来玩,因此,你需要等到excel解决这个问题。