0

Workbook_SheetChange イベント ハンドラーをアクティブなブックに接続できません。ワークブックまたは Excel (xlApp) のインスタンスが null であると言い続け、例外をスローします。

コードは次のとおりです。

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;
    }

問題は最後の行です。exwb を xlApp.ActiveWorkbook に何度も置き換えたことに注意してください。

4

1 に答える 1

0

Excel アプリケーションの作成中に何か問題が発生した可能性があります。インスタンスMarshal.GetActiveObjectを作成する最も簡単な方法ではありません。Excel.Application代わりにこれを試してください:

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