VBA InputBox提示两次

时间:2015-09-02 20:43:54

标签: excel vba prompt inputbox

我有一个简单的脚本在关闭工作簿之前需要密码(以防止意外关闭),但如果我输入正确的关键字,InputBox会重新打开。我已经创建了以下脚本的多个迭代,但我无法解决它。

Sub Workbook_BeforeClose(Cancel As Boolean)

If InputBox("Please enter the password to close the workbook.") <> "pa55word" Then
    MsgBox ("Incorrect password.  Please try again")
    Cancel = True
    Exit Sub
Else
    GoTo GoToClose
End If

GoToClose:
ThisWorkbook.Close SaveChanges:=False

End Sub

2 个答案:

答案 0 :(得分:0)

关闭前禁用事件。

答案 1 :(得分:0)

如果你这样编码:

  • 如果密码正确而没有第二次关闭,代码只会继续保存工作簿
  • 前面的ThisWorkbook.Saved告诉Excel工作簿已完全更新,因此不会有您要保存消息 - 即它执行与False相同的任务ThisWorkbook.Close SaveChanges:=False的一部分,现有的Save事件将关闭工作簿。

recut

Sub Workbook_BeforeClose(Cancel As Boolean)

ThisWorkbook.Saved = True
If InputBox("Please enter the password to close the workbook.") <> "pa55word" Then
     MsgBox ("Incorrect password.  Please try again")
     Cancel = True
End If

End Sub