0

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

4

1 回答 1

0

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

xlApp = new Excel.Application();
于 2015-01-22T09:28:45.300 回答