Я хочу добавить событие на лист в Excel с помощью VB.net Я написал для этого следующий код Но я столкнулся с проблемой в указанной строке
Помогите, пожалуйста
эта программа вылетела в строке 22
Imports Microsoft.Office.Interop
Imports Microsoft.Vbe.Interop
Imports System.Runtime.InteropServices
Imports System.Text
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim excelApplication As New Excel.Application
Dim excelWorkbooks As Excel.Workbooks = excelApplication.Workbooks
Dim excelWorkbook As Excel.Workbook = excelWorkbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet)
Dim excelWorkSheet As Excel.Worksheet = excelWorkbook.ActiveSheet
excelApplication.Visible = True
Dim VBComp As Microsoft.Vbe.Interop.VBComponent
Dim CodeMod As Microsoft.Vbe.Interop.CodeModule
Dim LineNum As Long
VBComp = excelApplication.ActiveWorkbook.VBProject.VBComponents(excelWorkSheet.Index)
CodeMod = VBComp.CodeModule
With CodeMod
LineNum = .CreateEventProc("Active", "Worksheet")'**Crash: Event handler is invalid**
LineNum = LineNum + 1 : .InsertLines(LineNum, " ")
LineNum = LineNum + 1 : .InsertLines(LineNum, "Msgbox(""Hi"")")
End With
'Save and quit
excelWorkbook.SaveAs("F:\MyVBAExcelFile.xlsm", Excel.XlFileFormat.xlOpenXMLWorkbookMacroEnabled)
excelApplication.Quit()
Marshal.ReleaseComObject(excelWorkbooks)
Marshal.ReleaseComObject(excelWorkbook)
Marshal.ReleaseComObject(excelApplication)
End Sub
End Class


Активный - это состояние, а не событие, вы должны попробовать Активировать, чтобы он заработал. Ошибка возникает, когда событие не существует (например, Active).
измените "Активный" на "Активировать"
как его активировать?