2012-01-25 86 views
1

使用excel 2007我編寫了一個宏,我希望從Workbook_Open()調用開始(位於「thisWorkbook」中)。Workbook_Open()不會在excel已經運行的情況下執行

這工作正常,只要這是一個新的「excel會話」,因此它與xlsm-file /我一起啓動excel並加載文件。

但是,只要excel已經運行,Workbook_Open()函數就不會執行。只要在工作簿加載完成後手動啓動它,宏就會正常工作。

澄清:即使沒有其他工作簿打開,也只會發生這種情況,因此我確信沒有其他計算會干擾Workbook_Open()調用(大多數時候提議)。

(這個問題似乎在2003年的Excel也存在: Excel Workbook Open Event macro doesn't always run

我將是任何提示如何調用我的宏在任何情況下,不勝感激! (因爲我的用戶大多數時間已經在啓動我的文件時已經出色地運行了) 感謝

+0

如果文件已經打開,它會出現,它不點火,因爲Excel將無法打開相同的文件名兩次。 – jgallant

+0

沒有文件_at all_是打開的,我關閉了所有的工作簿(包括所考慮的文件)並且只剩下excel運行 – Thumper

+1

你描述的是不正常的Excel行爲。我懷疑這是特定於您用於開發的機器。其他機器上是否也發生過相同的行爲? –

回答

2

您可以創建一個全局布爾變量,並在workbook_open中爲true設置一個值。

和之後驗證值變量

'In Module 
Global BoolCheck As Boolean 


Sub CheckValue() 
'Verify if Workbook_Open Event is called 
If BoolCheck = False Then 
    'case not call the 
    ActiveWorkbook.Workbook_Open 
End If 
End Sub 

'in Workbook Object 
Public Sub Workbook_Open() 
    BoolCheck = True 
End Sub 

[]的

相關問題