2012-04-24 19 views
6

我有一个运行的Excel VBA方法(我没有写它),它的第一件事之一是隐藏Excel会话Application.Visible = False取消隐藏Excel应用程序会话

但是,该方法完成后,它不会取消隐藏Excel会话,因此它保持打开状态并在任务管理器中列出,但是隐藏且看起来不可用。

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

这不是一个大规模的交易,但我只是有兴趣,如果有人知道如何复活这样的会议。

+1

这是一个糟糕的编程案例。即使我们给出一个代码来关闭所有隐藏的Excel实例,那也无济于事。因为下次你运行这个宏,你将再次面临同样的问题。为什么不编辑现有代码并在末尾添加'Application.Visible = True'? VBA密码是否受到保护? – 2012-04-24 08:34:06

+0

@SiddharthRout我完全同意(你应该看到其余代码的状态!)。我只是不得不运行应用程序来生成一些报告,并且当我忘记保持VBE打开时,不得不杀掉会话。不幸的是,我没有控制权来进行所需的更改。就像我说的那样,这不是什么大不了的事情,但只是有兴趣知道如果有人知道快捷键或任何可以将其恢复的东西。 – markblandford 2012-04-24 08:46:29

+1

嗨creamyegg。如果你打开任何Excel文件,它会使当前的Excel实例可见。 – CaBieberach 2012-04-24 09:20:04

回答

9

就像我说的,这不是什么大不了的事,但只是有兴趣知道如果有人知道快捷键或任何东西把它带回来。

没有捷径可以让我知道,但你可以做到这一点。

打开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分钟前

+0

谢谢@SiddharthRout,我会给我的。我无法做出这些改变的意思是,就我而言,做一个简单的,一行代码改变的官僚作风是可怕的,所以我只是不想去那里。这不值得痛苦! :) – markblandford 2012-04-24 09:08:25

+0

精美的作品,谢谢! – markblandford 2012-04-24 09:10:49

0

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

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

如果你能找到它,就把Application.Visible = True放在它和瞧吧之前。

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 
0

A good solution

打开Word中,假设你拥有了它,并打开VBA编辑器那里,然后打开立即窗口(Ctrl + G)和类型:

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

,然后按回车。