如何为每个工作簿创建WorkbookOpen事件?

问题描述 投票:0回答:1

如何创建在打开工作簿时触发的事件?我想要任何工作簿的通用事件,而不是在每个工作簿中嵌入一些东西,以便在打开后运行。

我可以使用以下方法访问应用程序对象:

var xlApp = (Microsoft.Office.Interop.Excel._Application)ExcelDna.Integration.ExcelDnaUtil.Application;

但是我不知道从哪里去?这种事情似乎可以在VBA中做到这一点:

Private WithEvents app As Application

Private Sub Workbook_Open()
    Set app = Application
End Sub

Private Sub app_WorkbookOpen(ByVal Wb As Workbook)
    If Not Win_Toggle = 1 Then Exit Sub

    With app
        .WindowState = xlNormal
        .Left = -500
        .WindowState = xlMaximized
    End With
End Sub
c# excel excel-dna
1个回答
1
投票

你应该投射到Application而不是_Application,你可以访问你正在寻找的事件......

var xlApp = (Microsoft.Office.Interop.Excel.Application)ExcelDna.Integration.ExcelDnaUtil.Application;
xlApp.WorkbookOpen += XlAppOnWorkbookOpen;

private void XlAppOnWorkbookOpen(Microsoft.Office.Interop.Excel.Workbook wb)
{
    // ...
}
© www.soinside.com 2019 - 2024. All rights reserved.