当多个实例正在运行时,如何获得一个活动实例(Excel)?

时间:2018-08-03 09:12:48

标签: vsto office-addins excel-addins

        Excel.Application instance = null;
        Workbook wb = null;
        //getting the current running instance of an excel application
        //note : only one instance should be running while using this addin
        //fix yet to be developed
        instance = (Excel.Application)Marshal.GetActiveObject("Excel.Application");


        //instance = new Excel.Application();

        //opening the template
        wb = instance.Workbooks.Open(@"C:\Program Files (x86)\Microsoft\ExcelAddin\Templates\sample.xltx");

        //selecting the first sheet1
        Excel.Worksheet ws = wb.Worksheets[1];

我一直在尝试为Excel创建一个加载项,我成功创建了整个加载项,但是代码中有一个错误,它仅在该过程中正在运行一个Excel实例时才起作用,但是我知道这会从一开始就发生。

如何修复该错误,以便即使打开了Excel应用程序的多个实例,我的加载项也可以正常工作?

1 个答案:

答案 0 :(得分:0)

要在AddIn Project中获取Excel应用程序的当前实例,yoo可以使用

Excel.Application _ExcelApp = Globals.ThisAddIn.Application
Excel.Worksheet _Excelsheet =  (Excel.Worksheet)ExcelApp.ActiveWorkbook.ActiveSheet

我们正在Excel AddIn项目中使用相同的代码,并使用上述代码处理当前实例。