VB.net Office VSTO加载项工作簿BeforeSave没有签名兼容



我试图从VSTO Addin for Office开始,我翻译了微软在他们网站上发布的一个例子。但当我实现WorkbookBeforeSave事件时,我总是收到这个错误:

Method 'Application_WorkbookBeforeSave' cannot handle event 'WorkbookBeforeSave' because they do not have a compatible signature

我在谷歌上搜索,看起来签名是可以的。我在C#中尝试了这个例子,效果很好。

这是我的代码:

Imports System.Windows.Forms
Imports Microsoft.Office.Interop.Excel
Public Class ThisAddIn

Private Sub ThisAddIn_Startup() Handles Me.Startup
AddHandler Application.WorkbookBeforeSave, New Excel.AppEvents_WorkbookBeforeSaveEventHandler(AddressOf Application_WorkbookBeforeSave)
End Sub
Private Sub ThisAddIn_Shutdown() Handles Me.Shutdown
End Sub
Sub Application_WorkbookBeforeSave(wb As Workbook, SaveUI As Boolean, Cancel As Boolean) Handles Application.WorkbookBeforeSave(
Dim activeworksheet As Worksheet = Application.ActiveSheet
Dim firstRow As Range = activeworksheet.get_range("A1")
firstRow.EntireRow.Insert(Excel.XlInsertShiftDirection.xlShiftDown)
Dim newFirstRow As Range = activeworksheet.get_tange("A1")
newFirstRow.Value2 = "This text was added by using code"
End Sub
End Class

错误是具有";(AddressOf Application_WorkbookBeforeSave(";有人能帮我吗?感谢

我发现了问题,这是我的错误。错误在声明中:

Sub Application_WorkbookBeforeSave(wb As Workbook, SaveUI As Boolean, Cancel As Boolean) Handles Application.WorkbookBeforeSave

参数Cancel as Boolean应为By Ref Cancel as Boolean

最新更新