2017-04-24 339 views
-1

我创建了许多单元测试。在每次测试开始时,我在TestInitialize上打开一个空白的Excel工作簿,但是对于这个特殊测试,我需要打开另一个Excel工作簿。我想在打开TestInitialize的空白工作簿中打开它。我尝试了以下操作,但它将它们作为2个独立的工作簿打开。使用Marshal.GetActiveObject在空白的Excel工作簿中打开Excel工作簿

任何想法为什么会发生这种情况?

我的代码如下

using xl = Microsoft.Office.Interop.Excel; 
    private static string columnChartTemp = @"Testing\V8\TestMaster\V8.6\Testing\V8.6.0.11 Testing\columnChart.xlsx"; 
    var excel = (xl.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application"); 
    var myWorkbook = excel.Workbooks.Open(columnChartTemp); 
    excel.Visible = true; 
+0

你想打开一个新的工作簿,或只是一个新的标签? – vipersassassin

+0

@vipersassassin我想打开一个工作簿 –

+0

然后它会一直打开一个单独的工作簿。如果将其作为选项卡添加到当前工作簿中,这将成为将其保存在先前打开的工作簿中的唯一方法。 – vipersassassin

回答

0

的工作簿是包含一个或多个工作表文件(制表符。)你不能打开另一个工作簿内的工作簿。

听起来好像您想要将工作表中的工作表添加到其他工作簿中。你可以做到这一点。打开两个工作簿并将工作表从一个复制到另一个。