我在将Workbook_SheetChange事件处理程序连接到活动工作簿时遇到问题。我尝试了几种方法无济于事,它只是说我的工作簿或Excel实例(xlApp)为空并抛出异常。
以下是代码:
private void createProject_Click(object sender, RibbonControlEventArgs e)
{
Excel.Application xlApp;
xlApp = (Excel.Application)Marshal.GetActiveObject("Excel.Application");
exwb = (Excel.Workbook)xlApp.ActiveWorkbook;
MessageBox.Show(exwb.Name);
EventDel_CellsChange = new Excel.WorkbookEvents_SheetChangeEventHandler(narrator.Workbook_SheetChange);
xlApp.ActiveWorkbook.SheetChange += EventDel_CellsChange;
}
问题是最后一行,请注意我已多次用xlApp.ActiveWorkbook替换exwb
答案 0 :(得分:0)
创建Excel应用程序可能出错了。 Marshal.GetActiveObject
不是创建Excel.Application
实例的最简单方法。试试这个:
xlApp = new Excel.Application();