将打开的 Excel 文档移动到单独的窗口

Dan*_*olo 14 window microsoft-excel

相关(但不一样):在新窗口中打开 Excel 文件

如果我有一个 Excel 实例,其中多个文档在同一窗口中打开。有没有办法“撕掉”当前正在运行的 Excel 实例中的一个窗口,使其位于一个完全不同的窗口中?

什么是符合该法案:

  • 排列所有/并排查看/其他 MDI 内容;我想要一个单独的窗口,它可以在另一台显示器上单独最大化,并由窗口系统以不同的方式管理,等等。
  • 在正在运行的实例中保存/关闭它,然后打开一个新的 Excel 实例并在那里打开文件(这是我目前所做的,但很痛苦)

编辑:目标 Excel 版本是 2007 和 2010,但什么都可以

var*_*ant 4

有趣的想法。我有理由相信,如果没有自定义宏,您就无法做到这一点。由于是一个下雨的周日...

Sub OpenInNewInstance()
     Dim objXLNewApp As Excel.Application
     Dim doc As String

     doc = ActiveWorkbook.FullName
     ActiveWorkbook.Close True

     Set objXLNewApp = CreateObject("Excel.Application")

     objXLNewApp.Workbooks.Open doc
     objXLNewApp.Visible = True
End Sub
Run Code Online (Sandbox Code Playgroud)

假设您不熟悉 VBA,您需要:

  1. 复制上面的代码
  2. 打开新的 Excel 工作簿后,打开 Excel 的 VBA 编辑器 (Alt+F11)
  3. 右键单击 VBAProject (Book1)(或左侧菜单中的任何名称)
  4. 选择插入 > 模块
  5. 将代码粘贴到主窗口中
  6. 返回 Excel,选择另一个工作簿来测试代码(它将在关闭之前保存工作簿)
  7. 返回 VBA 编辑器,选择您粘贴的模块,然后按播放按钮

我的计算机上安装了 3 个版本的 Excel,当我在 Excel 2010 中运行此程序时,它会打开 Excel 2003 的新实例。

如果这满足您的需求,您可以将其打包到加载项中并将其作为功能区按钮提供。如果您不熟悉这样做,请告诉我,我可以提供帮助。

编辑:如果这种方法适合您,显然需要添加一些额外的代码,以确保 Excel 的新实例在另一个窗口中最大化。让我知道。