如何创建在打开工作簿时触发的事件?我想要任何工作簿的通用事件,而不是在每个工作簿中嵌入一些东西,以便在打开后运行。
我可以使用以下方法访问应用程序对象:
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
你应该投射到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)
{
// ...
}