首页 文章

Excel Interop - 创建可见工作簿,同时保持主要隐藏

提问于
浏览
0

假设我在WinForms应用程序中设置了以下内容:

Dim ExcelApp As Microsoft.Office.Interop.Excel.Application
Dim ExcelWorkbook As Microsoft.Office.Interop.Excel.Workbook
Dim wksDataVals As Microsoft.Office.Interop.Excel.Worksheet

ExcelApp.Visible = False

基本上,我有一个不可见的Excel实例在后台运行,其中打开一个名为 ExcelWorkbook 的工作簿和一个名为 wksDataVals 的应用程序正在操作的工作表 . 并且用户正在通过用户窗体操纵该工作表(和其他工作表),并根据这些操作查看一些输出 .

现在,在我的表单上,我有一个按钮 Show Excel Sheet ,其中,一旦用户点击它,我想在一个新的,独立的工作簿中向他们展示wksDataVals的副本,同时保持原始隐藏在后台以进行进一步的数据操作 . 我相信我需要通过创建一个新的Excel实例来实现这一点,因为我想隐藏这个 .

有没有更好的方法来做到这一点:

  • 保存工作表

  • 创建一个新的(可见)Excel实例

  • 在该实例中重新打开工作表

(这可能会导致工作表的问题现在只是只读,因为我希望它在另一个Excel实例中保持打开状态) - 我知道我可以通过将工作表重新保存为新名称AGAIN来解决这个问题,但这一切都是看起来有点矫枉过正 .

关于如何以最简单的方式实现这一目标的任何想法? - 也许有办法在内部保存工作簿/工作表并将其提供给新的Excel实例,而不是让Excel尝试打开保存的工作表?

谢谢!

1 回答

  • 0

    作为我自己问题的答案,如果有人在那里碰巧遇到同样的问题(请专家,如果你有更好的方法,请告诉我),我最终做的是:

    • 创建Excel的新实例

    • 在该实例中创建一个空白的新工作簿

    • 从隐藏的工作表中复制我关心的范围

    • 将它(我的情况下的值和格式是我想要的)粘贴到新工作簿上

    • 使Excel的新实例可见

    • 设置对新应用实例,工作簿,工作表等的引用=什么都没有,所以现在它不再连接到我的程序了 .

    似乎很奇妙地做了这个伎俩 .

相关问题