8

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

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

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

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

4

5 回答 5

15

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

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

打开 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 脚本文档。

不幸的是,我无法控制进行所需的更改。

你到底是什么意思?VBA 密码是否受保护?如果不是,那么我的建议仍然与之前相同

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

于 2012-04-24T09:02:04.490 回答
1

一个很好的解决方案

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

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

然后按回车。

于 2017-07-29T03:50:17.390 回答
0

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

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

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

于 2013-01-04T08:36:22.670 回答
0

作为代码:

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
于 2013-06-06T10:44:46.757 回答
0

根本不需要word宏。

打开另一个 Excel 工作簿。

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

于 2021-12-16T07:17:39.727 回答