2014-11-21 61 views
5
  1. 在Word VSTO我們DocumentBeforeSave事件被稱爲右後「要保存更改」對話框中,我可以很容易取消標準的保存對話框,展示我自己的。不能捕獲後「要保存更改」對話框中的Excel

  2. 但是在Excel VSTO WorkbookBeforeSave在保存對話框關閉後調用,它導致我自己的保存對話框顯示在內置的對話框後面。我可以使用WorkbookBeforeClose事件,但我應該顯示自己的「想要保存您的更改」對話框,並且按「不保存」時自動保存功能也不起作用。

有沒有方法來調用我的代碼權後,以防止內置的「保存」對話框,或以某種方式告訴Excel中創建一個自動保存點(用我自己的能力「要保存更改」,在Excel中對話框當我按「不保存」時,「想要保存您的更改」對話框)?

+0

@ vba4all是的,我敢肯定。嘗試點擊關閉新文檔。通過ctrl + s和File-> Save all ok進行保存 – 2014-11-24 09:56:27

+0

您是否將* SaveAsUI *設置爲* False *和* Cancel * * True *? – Jeeped 2015-06-06 03:53:27

回答

0

我不確定你是否找到了你的答案,因爲這個帖子有點過時,但以爲我會把我的0.02美元。

我上解鎖veryhidden片創建[isDirty]命名範圍並在每個可見Worksheet.Change我設置[isDirty] =真

在Workbook.BeforeClose我有這樣的:

 If [IsDirty] = True Then 
      Select Case MsgBox("Do you want to save the changes you made to '" & .Name & "'?", _ 
       vbYesNoCancel + vbExclamation) 
       Case Is = vbYes 
        ThisWorkbook.Save 
        [IsDirty] = False 
       Case Is = vbNo 
        'Do not save 
       Case Is = vbCancel 
        Cancel = True 
      End Select 
    End If 

在私人小組Workbook_BeforeSave(BYVAL SaveAsUI由於布爾,取消爲布爾)

ThisWorkbook.Save 
    [IsDirty] = False 
    Cancel=True