事件处理程序不会连接到COM Addin的活动工作簿

时间:2015-01-21 21:40:41

标签: c# excel comaddin

我在将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

1 个答案:

答案 0 :(得分:0)

创建Excel应用程序可能出错了。 Marshal.GetActiveObject不是创建Excel.Application实例的最简单方法。试试这个:

xlApp = new Excel.Application();