BeforeSave事件提示两次input密码

我希望Excel在保存之前要求我input密码。 如果密码正确,则保存; 如果没有显示警报,并不保存。

这里是我写的代码,它调用一个用户表单来获取密码,这是一个文本框和两个button,如“确定”和“取消”。

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 

问题是,当我input正确的密码,然后再次提示用户窗体。 我不想再获取用户表单。

谢谢。

您不需要调用ActiveWorkbook.Save ,工作簿已经处于保存过程中。 只有当你设置Cancel = True时,工作簿才会被保存。 调用.Save再次触发事件。