我希望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
问题是,当我输入正确的密码时,它会再次提示用户窗体。我不想再次获得用户表单。
感谢。
答案 0 :(得分:1)
您不需要致电ActiveWorkbook.Save
,工作簿已经处于保存状态。仅当您设置Cancel = True
时,才会保存工作簿。调用.Save
会再次触发事件。