【问题标题】:Excel add-in - get workbook name of "thisworkbook"Excel 加载项 - 获取“thisworkbook”的工作簿名称
【发布时间】:2016-11-11 01:05:57
【问题描述】:

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

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

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

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

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

End Sub

【问题讨论】:

  • 不能解决问题。收到错误 91。说一些关于 withblock 的内容,不知道如何将其翻译成英文
  • 如果我接受错误的“等待”,它可以与 thisworkbook 或 activeworkbook 一起工作。但它不能自己运行
  • 抱歉,您确定您的工作簿名为 XCFIL.SKV,因为如果不是,它可能正在运行,但您永远不会知道...?
  • 如果该代码在加载项中,它仅在加载项打开时运行 - 这将在任何工作簿处于活动状态之前

标签: excel excel-addins vba


【解决方案1】:

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

由于是Excel,问题似乎只在于实例本身的打开,您可以使用Application wait any of the other functions for this matter
进一步的想法:

在这种情况下,我想到了生命周期。 This web page有一个简洁的excel实例生命周期图(附上,因为我会尝试解释场景)

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

【讨论】:

    猜你喜欢
    • 2011-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多