我们有一个 Excel 互操作 COM 加载项,它在某些时候执行以下操作:
CurrentWorkbook.Close();
//other code
ExcelApplication.Workbooks.Open("B.xls");
假设我们打开了 1 个工作簿 A.xls。直到 Excel 2010,这在运行代码时按预期工作:关闭 A,然后打开 B.xls。我已阅读自 Excel 2013 以来,每个工作簿都在其自己的 Excel 实例中打开。然而,即使使用 Excel 2013,它的行为也符合上述预期。没有打开额外的窗口。
但是,Excel 2016 有一些修改,当 A.xls 关闭时,会保留一个空的工作簿外壳。之后,B.xls 在另一个窗口中打开。所以最后我有 1 个空窗口和一个带有 B.xls 的窗口。
看起来这两个窗口不是独立的:关闭 B.xls 不会创建另一个空的 Excel 窗口,在空窗口上单击关闭实际上会关闭 B.xls。
关于在 A 关闭时我应该如何防止空窗口的任何想法,或者在那个空窗口(A 离开)中打开 B.xls 作为容器而不是第二个窗口?