Vba BeforeSave事件提示密码询问userform两次
我希望Excel在保存前询问我密码。如果密码正确,则保存;如果没有,则显示警报并不保存 下面是我编写的代码,它调用一个userform来获取密码,密码是一个文本框和两个按钮OK和CancelVba BeforeSave事件提示密码询问userform两次,vba,excel,Vba,Excel,我希望Excel在保存前询问我密码。如果密码正确,则保存;如果没有,则显示警报并不保存 下面是我编写的代码,它调用一个userform来获取密码,密码是一个文本框和两个按钮OK和Cancel Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Dim Password As String Dim InputPass As String Password = "
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
问题是,当我输入正确的密码时,它会再次提示userform。我不想再次获取用户表单
谢谢。您不需要调用Active工作簿。保存,工作簿已在保存过程中。只有将“取消”设置为True时,工作簿才不会保存。调用.Save会再次触发事件。我还将提到,当前保存的不一定是ActiveWorkbook,此workbook是事件代码中最安全的引用。此workbook.Save是否会触发保存循环?事实上,仅仅移除它就可以解决问题。是的,它确实解决了问题,我在回答中已经提到了这一点。助教。