我有一个运行的Excel VBA方法(我没有编写它),它所做的第一件事就是隐藏Excel会话Application.Visible = False
。
但是,当方法完成后,它不会取消隐藏Excel会话,因此它会保持打开状态并列在任务管理器中,但是它是隐藏的,看起来似乎无法使用。
有没有人知道,没有VBE打开(所以可以访问立即窗口并运行Application.Visible = True
),如何取消隐藏此Excel会话?目前,我只需要使用任务管理器终止会话。
这不是一个大问题,但我只是感兴趣,如果有人知道如何恢复这样的会议。
答案 0 :(得分:12)
就像我说的那样,这并不是什么大不了的事情,但只要有人知道快捷键或其他什么东西就可以把它带回来。
没有捷径,我知道但你可以做到这一点。
打开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分钟前
答案 1 :(得分:0)
我遇到了类似的问题,并通过代码行重新排序解决了这个问题。
查找类似于此ActiveWorkbook.Close
的行,这可能是您无法取消隐藏会话的原因。
如果你能找到它,就把Application.Visible = True
放在它前面,然后瞧。
答案 2 :(得分: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
答案 3 :(得分:0)
打开Word,假设你拥有它,然后在那里打开VBA编辑器,然后打开立即窗口(Ctrl + G)并输入:
Getobject(, "Excel.Application").Visible = true
然后按Enter键。