2016-12-15 54 views
1

由於我經常遇到問題,該設置在設置中消失:保存前計算。 (我不知道我的辦公室版本是德文的確切詞語)。Workbook_Before保存每個活動工作簿ActiveWorkbook

這就是爲什麼我嘗試使用VBA來解決問題。我在Excel文件中使用了以下代碼:

Option Explicit 

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, _ 
    Cancel As Boolean) 

If Application.CalculateBeforeSave = False Then 
    If MsgBox("Caution! Should >calculatebeforesave< be activated?", vbYesNo) = vbYes Then 
     Application.CalculateBeforeSave = True 
    Else 
    End If 
Else 
End If 

End Sub 

我把這個放到了「Thisworkbook」中。但我希望這些代碼能夠在我工作的每個工作簿中運行(至少所有這些都允許使用宏)。

我的建議是編寫ActiveWorkbook_BeforeSave ...而不是Workbook_BeforeSave,然後將代碼放在PERSONAL宏文件的模塊中。但這不起作用。

+1

所有你需要的是應用程序級事件處理程序。 http://www.cpearson.com/excel/AppEvent.aspx – cyboashu

回答

2

我認爲你需要使用Excel應用程序事件,而不是工作簿事件來實現這一目標,如在此example

在你的個人工作簿中單擊鼠標右鍵,然後插入AA類模塊(1級)

下面加入類似的東西,以第1類:

Public WithEvents appevent As Application 

Private Sub appevent_WorkbookBeforeClose(ByVal Wb As Workbook, Cancel As Boolean) 
'Add what you would like to happen before a workbook closes 

End Sub 

下一頁開放ThisWorksheet並沿着這些線路添加代碼(我認爲個人工作簿自動打開Excel啓動時):

​​
+1

當Excel啓動時,Personal.xls/xlsb應該會自動打開,只要將它保存在XLSTART文件夾中:) –

相關問題