【问题标题】:Unhide Excel Application Session取消隐藏 Excel 应用程序会话
【发布时间】:2012-05-04 20:59:35
【问题描述】:

我有一个运行的 Excel VBA 方法(不是我写的),它做的第一件事就是隐藏 Excel 会话 Application.Visible = False

但是,当该方法完成后,它不会取消隐藏 Excel 会话,因此它会保持打开状态并在任务管理器中列出,但处于隐藏状态且似乎无法使用。

有谁知道,如果没有打开 VBE(因此可以访问即时窗口并运行Application.Visible = True),如何取消隐藏此 Excel 会话?目前,我只需要使用任务管理器终止会话。

这不是什么大不了的事,但如果有人知道如何恢复这样的会话,我只是感兴趣。

【问题讨论】:

  • 这是一个糟糕的编程案例。即使我们提供关闭所有隐藏 Excel 实例的代码,也无济于事。因为下次运行该宏时,您将再次面临同样的问题。为什么不编辑现有代码并在末尾添加Application.Visible = True? VBA 密码是否受保护?
  • @SiddharthRout 我完全同意(您应该看到其余代码的状态!)。我只需要运行该应用程序来生成一些报告,并且当我忘记保持 VBE 保持打开状态时,我已经厌倦了不得不终止会话。不幸的是,我无法控制进行所需的更改。就像我说的那样,这没什么大不了的,但如果有人知道快捷键或任何可以将它带回来的东西,就很感兴趣。
  • 嗨 creamyegg。如果您打开任何 excel 文件,它将使当前的 excel 实例可见。
  • @CaBieberach 这是一个很好的选择。以前从未注意到这种行为。谢谢

标签: excel vba show hidden


【解决方案1】:

就像我说的那样,这没什么大不了的,但如果有人知道快捷键或任何可以将其带回的东西,我只是感兴趣。

据我所知,没有捷径,但你可以这样做。

打开 MS Word 并将此代码粘贴到 VBA 编辑器中。关闭所有可见的 Excel 打开实例,然后运行此代码。这将使隐藏的实例可见。如果有更多实例,请手动关闭实例并重复该过程。

Option Explicit

Sub Sample()
    Dim oXLApp As Object

    '~~> Get an existing instance of an EXCEL application object
    On Error Resume Next
    Set oXLApp = GetObject(, "Excel.Application")
    On Error GoTo 0

    oXLApp.Visible = True

    Set oXLApp = Nothing
End Sub

我不是故意使用循环,因为隐藏的实例可以有一个您可能想要保存的工作簿?

如果您愿意,您可以将上述代码转换为 VB Script 文档,您可以直接从桌面运行。

很遗憾,我无法进行所需的更改。

你到底是什么意思? VBA 密码是否受保护?如果不是,那么我的建议还是和之前一样

这是一个糟糕的编程案例。即使我们给出关闭代码 所有隐藏的 Excel 实例,对您没有帮助。因为下次你 运行该宏,您将再次面临同样的问题。为什么不编辑 现有代码并在最后添加 Application.Visible = True ?是个 VBA 密码保护? – Siddharth Rout 28 分钟前

【讨论】:

  • 谢谢@SiddharthRout,我会放弃的。我的意思是我无法进行更改,在我的位置上,进行简单的一行代码更改的官僚机构是可怕的,所以我什至不想去那里。这不值得痛苦! :)
【解决方案2】:

A good solution!

打开 Word,假设你有它,并在那里打开 VBA 编辑器,然后打开即时窗口 (Ctrl+G) 并键入:

Getobject(, "Excel.Application").Visible = true

然后按回车键。

【讨论】:

    【解决方案3】:

    我遇到了类似的问题,并通过代码行重新排序解决了它。

    寻找像ActiveWorkbook.Close 这样的行,这可能是您无法取消隐藏会话的原因。

    如果你能找到它,把Application.Visible = True放在它前面,瞧。

    【讨论】:

      【解决方案4】:

      代码:

      sub runthis()
          dim xl as object
          set xl = new excel.application 'create session
          xl.workbooks.open filename:= "«yourpath»" 'open wb in the new session
          xl.visible=true 'this is what you need, show it up!
          'rest of the code
      end sub
      

      【讨论】:

        【解决方案5】:

        根本不需要word宏。

        打开另一个 Excel 工作簿。

        按 Ctrl+F11 进入 VBA 编辑器,在那里你会看到左侧正在运行但隐藏的 excel 文件。 在隐藏应用程序文件的代码中搜索 Application.Visible = False 并将其注释掉。保存并重新启动文件。 或者,如果您在即时窗口中键入 Application.Visible = True (Ctrl+G),您可以在不关闭的情况下返回应用程序来显示

        【讨论】:

          猜你喜欢
          • 2013-10-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-03-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多