VB.NET Excel VSTO NewWorkbook事件

时间:2019-02-14 15:15:54

标签: excel vb.net vsto

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

(我在询问问题时确实找到了类似的问题here,但标题仅引用了工作簿打开事件,而不是新的工作簿事件,并且在整个工作日中都找不到它。)< / p>

1 个答案:

答案 0 :(得分:0)

我能够使用在线代码转换器将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,该事件处理程序指向将处理该事件的自定义过程。