VSTO:如何强制Visual Studio运行Excel的新实例

Visual Studio需要运行EXCEL.EXE的实例,以便在Visual Studio中以devise模式编辑Excel工作表。 不幸的是,如果它发现一个已经运行,它将使用那个。 如果该实例碰巧正在工作,或者正在运行一个macros,macros有时会崩溃。 如果由于某种原因我需要杀死它(我经常这样做),那么VS显然也会停止工作。

解决方法是closures所有EXCEL.EXE实例,运行VS,打开VSTO项目,然后VSfind没有正在运行的Excel实例并运行它自己的,然后我可以重新打开我以前的实例。 但是这并不总是可能的,所以我想find一种让VS每次都能打开一个新实例的方法。

我是一个VB的家伙,所以我的代码可能缺乏(虽然它只是从这里复制)。

首先你要声明一个variables来保存新的Excel实例:

 Excel.Application oXL; 

然后,您需要将该variables设置为一个新的实例并使其可见:

 oXL = new Excel.Application(); oXL.Visible = true; 

然后只在代码中引用该实例,例如,

oXL.Workbooks.Open …