【问题标题】:VB.NET Excel VSTO NewWorkbook EventVB.NET Excel VSTO NewWorkbook 事件
【发布时间】:2026-02-11 00:25:15
【问题描述】:

我正在创建一个 Excel 加载项,并且需要在创建新工作簿时触发代码。 AppEvents 中有一个名为 NewWorkbook 的事件应该触发,但 Intellisense 没有显示它,我无法使用对象浏览器让它工作。我在网上找到了几个地方,比如here,解释这个问题是因为还有一个同名的方法,所以Intellisense无法区分两者,因此没有提供帮助。不幸的是,我找到的每个地方,包括 Microsoft 的文档,都只有 C# 示例,我不知道如何更改它以使用 VB。

(我在提问时确实发现了一个类似的问题here,但标题仅引用了工作簿打开事件,而不是新工作簿事件,而且我在整个工作日的搜索中都没有找到它。)

【问题讨论】:

    标签: excel vb.net vsto


    【解决方案1】:

    我能够使用在线代码翻译器将 C# 转换为足够接近 VB 的近似值,以便我能够让它工作。

    Private Sub ThisAddIn_Startup(sender As Object, e As EventArgs) Handles Me.Startup
        AddHandler CType(Application, Excel.AppEvents_Event).NewWorkbook, AddressOf Me.ThisWorkbook_NewWorkbook
    End Sub
    
    Private Sub ThisWorkbook_NewWorkbook(ByVal Wb As Microsoft.Office.Interop.Excel.Workbook)
        MsgBox("New workbook" + Wb.Name)
    End Sub
    

    它的工作方式是手动添加一个事件处理程序作为 Application.NewWorkbook 指向将处理事件的自定义过程。

    【讨论】: