3

在 Excel 2007 的一个 Excel 加载项项目中,我需要检查事件以创建新工作簿。我还需要捕捉我很容易完成的 Workbook_Open 事件......在我对互联网的研究中,我发现了以下内容:

Application.WorkbookOpen 在打开任何工作簿时引发。Excel 将作为参数打开的工作簿传递给此事件。创建新的空白工作簿时不会引发此事件。而是引发 Application.WorkbookNew 事件。

不幸的是,到目前为止我无法找到 Application.WorkbookNew 事件......我错过了什么?

键入应用程序后。自动完成功能为工作簿(包括打开)提供了一个漂亮而长的事件列表,但我找不到 WorkbookNew 事件......

有任何想法吗?

谢谢!

4

1 回答 1

7

您正在寻找Application.NewWorkbook event. 这是 VBA 参考。这是C#/VB.Net 中的一个示例

编辑:

我无法确认此信息的有效性,但我找到了以下解释(链接)

NewWorkbook 事件是应用程序级事件。由于还有一个同名属性,Intellisense 不会向您显示此内容,除非您将应用程序对象显式转换为应用程序事件:

        ((Excel.AppEvents_Event)ThisApplication).NewWorkbook += new Microsoft.Office.Interop.Excel.AppEvents_NewWorkbookEventHandler(ThisWorkbook_NewWorkbook);

事件处理程序:

    void ThisWorkbook_NewWorkbook(Microsoft.Office.Interop.Excel.Workbook Wb)
    {
        MessageBox.Show("New workbook" + Wb.Name);
    }

您尝试使用的过程仅在 ThisWorkbook VBA 项目中有效。它不能在直接的 Excel 环境之外使用。

于 2012-10-15T18:45:16.340 回答