Vb.net 在打开书本或其他解决方案之前搜索Excel事件

Vb.net 在打开书本或其他解决方案之前搜索Excel事件,vb.net,excel,visual-studio,events,event-handling,Vb.net,Excel,Visual Studio,Events,Event Handling,我正在使用Excel COM插件,该插件将打开预定义的Excel模板/文件。为了确保excel模板只能与加载项结合使用,我想对某些文件进行密码保护。棘手的部分是在打开工作簿之前查找或定义一个事件。其目的是在没有提示窗口的情况下,交出密码并打开文件 我尝试过以下事件,但失败了: 一, 该事件在弹出提示窗口后触发 二, 此事件根本不会触发 如果你有什么好主意来解决我的问题,请告诉我 多谢各位 Rainer您能使用Excel VBA工作簿。打开方法吗?这允许您包含打开工作簿所需的密码。请查看第二次尝试

我正在使用Excel COM插件,该插件将打开预定义的Excel模板/文件。为了确保excel模板只能与加载项结合使用,我想对某些文件进行密码保护。棘手的部分是在打开工作簿之前查找或定义一个事件。其目的是在没有提示窗口的情况下,交出密码并打开文件

我尝试过以下事件,但失败了:

一,

该事件在弹出提示窗口后触发

二,

此事件根本不会触发

如果你有什么好主意来解决我的问题,请告诉我

多谢各位


Rainer

您能使用Excel VBA
工作簿。打开
方法吗?这允许您包含打开工作簿所需的密码。请查看第二次尝试。这基本上应该是
工作簿。打开您建议的
方法。。。但不幸的是,它不起作用;o(尝试使用密码强制打开密码并检查Excel引发的错误如何?您好,JMax,我不完全理解您的方法。我如何告诉Excel应用程序始终使用给定的密码打开?这是否也与Excel事件(如“Excel.WorkbookEvents\u OpenEventHandler”)有关,以代替密码保护工作簿,您可以将除一张外的所有工作表设置为“非常隐藏”,并使用密码保护工作簿结构。然后,您可以在工作簿已打开后处理它,而不必转移打开事件。
EventDel_BookOpen = New Excel.AppEvents_WorkbookOpenEventHandler(AddressOf OpenWorkbook)
AddHandler xlApp.WorkbookOpen, EventDel_BookOpen

Private Sub OpenWorkbook(ByVal wb As Excel.Workbook)
    If wb.HasPassword Then
        wb.Password = "test"
    End If
End Sub
EventDel_WBookOpen = New Excel.WorkbookEvents_OpenEventHandler(AddressOf WBOpenWorkbook)
AddHandler xlBook.Open, EventDel_WBookOpen

Private Sub WBOpenWorkbook()
    If xlBook.HasPassword Then
        wb.Password = "test"
    End If
End Sub