2012-04-24 32 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

,然後按回車。