2015-08-27 56 views
0

我有這樣的代碼:停止BeforeCloseEvent當工作簿靠近

Private Sub Workbook_BeforeClose(Cancel As Boolean) 
    Dim ws As Worksheet 
    Sheets("MACROS").Visible = True 
    For Each ws In ThisWorkbook.Worksheets 
     If ws.Name <> "MACROS" Then 
      ws.Visible = xlVeryHidden 
     End If 
    Next ws 
    Application.CommandBars("Ply").Enabled = True 
End Sub 

的代碼顯示當宏被禁用的宏片。問題是,當啓用宏並且工作簿上已經完成了一些工作,並且通過單擊「X」(關閉按鈕)關閉該書時,它會提示保存,但會顯示MACROS表。

我期待在顯示保存提示時讓程序保持活動狀態。

有人會這麼善良,請幫我修改上面的代碼嗎?所有和任何幫助將不勝感激!

+0

刪除行'表(「宏」)可見= TRUE; – psychicebola

+0

您好,沒有該行是作爲宏片必須在打開的情況下,顯示重要的。禁用MACROS的工作簿。我想只要工作簿在啓用MACROS的情況下關閉,它就必須保持活動狀態?... – juriemagic

+0

@juriemagic解釋您在啓用或禁用宏時意味着什麼?如果你禁止運行宏,這個代碼如何工作。 – DragonSamu

回答

0

刪除行Sheets("MACROS").Visible = True

的代碼應該是:

Private Sub Workbook_BeforeClose(Cancel As Boolean) 
    Dim ws As Worksheet 
    For Each ws In ThisWorkbook.Worksheets 
     If ws.Name <> "MACROS" Then 
      ws.Visible = xlVeryHidden 
     End If 
    Next ws 
    Application.CommandBars("Ply").Enabled = True 
End Sub 
+0

非常感謝您的幫助。這個代碼存在一個小問題,因爲當我關閉工作簿時,我看到object'_worksheet的「工作表可見」失敗...可能只是一些小事? – juriemagic

+0

你從哪裏得到錯誤?你是否把這個子文件放在工作簿模塊?嘗試設置另一個表格,而不是'宏'作爲'ActiveSheet' – psychicebola

+0

xlveryhidden部分highlites黃色。但我有更嚴重的問題,比這更...汽車不會啓動,現在一列火車撞上它....即使在禁用宏的情況下,所有的宏按鈕仍然可以正常工作!! ..就好像宏啓用了..在地球上如何實現這種可能性??你知道,不要擔心這個線程..我是真的很煩,現在我已經厭倦了..我認爲需要做的是刪除7個月的努力工作,並重新安裝辦公室...... thanx出現在那裏,您的幫助非常感謝! – juriemagic