BeforeSave事件提示密码询问userform两次

时间:2017-07-30 07:11:35

标签: excel vba excel-vba

我希望Excel在保存之前询问密码。如果密码正确则保存;如果没有显示警报但不保存。

这是我写的代码,它调用userform获取密码,这是一个文本框,两个按钮为" OK"和"取消"。

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

    Dim Password As String
    Dim InputPass As String
    Password = "MyPass"
    UserForm1.TextBox1.Value = ""
    UserForm1.Show
    InputPass = UserForm1.TextBox1.Value
    If InputPass = Password Then
        ActiveWorkbook.Save
    Else
        MsgBox ("Wrong password!")
        Cancel = True
    End If

    End Sub

问题是,当我输入正确的密码时,它会再次提示用户窗体。我不想再次获得用户表单。

感谢。

1 个答案:

答案 0 :(得分:1)

您不需要致电ActiveWorkbook.Save,工作簿已经处于保存状态。仅当您设置Cancel = True时,才会保存工作簿。调用.Save会再次触发事件。