如何在Excel vba中确定用户对“想要保存更改”提示的回答

问题描述 投票:0回答:1

正如确定在VBA中使用保存、不保存或取消的答案中所解释的,当关闭用户进行更改的Excel时,首先会调用

Workbook_BeforeClose
,然后调用

enter image description here

将显示

提示,然后,如果用户选择 Save,将调用

Workbook_BeforeSave
。 但如何检查用户是否选择了不保存取消或单击X关闭提示(与取消相同)?

询问的原因是我正在工作簿打开时执行一些操作,如果用户决定不保存工作簿,我想恢复它们。

excel vba
1个回答
0
投票

您只需要为该事件为用户创建自己的提示即可。

Private Sub Workbook_BeforeClose(Cancel As Boolean)

    ' Check if workbook has been saved
    If Not ThisWorkbook.Saved Then

        Select Case MsgBox("Would you like to save?", vbYesNoCancel)
        Case vbYes
            'User decided to save, no need to revert changes.
            ThisWorkbook.Save
        Case vbNo
            'Perform extra revert tasks
            ThisWorkbook.Saved = True
        Case vbCancel
            Cancel = True
            'Perform your extra revert tasks, but don't close workbook
        End Select

    End If

End Sub

如果您愿意,您还可以使用用户表单关闭对话框对其进行更多自定义,但概念保持不变。

© www.soinside.com 2019 - 2024. All rights reserved.