如何使用vba检查excel文件的取消保护密码是否正确?

如何使用vba检查excel文件的取消保护密码是否正确?,excel,vba,passwords,unlock,Excel,Vba,Passwords,Unlock,我正在尝试用VBA锁定excel文件。我用默认密码将文件锁定在代码中,并将此密码提供给其他文件中的用户。始终是相同的密码,因此用户无需输入密码,我在开始时将文件锁定给他 我的问题是,我希望用户在表单中输入密码以解锁文件,我不知道如何在调用函数Unprotect之前检查用户输入的密码是否正确 我有一个这样的潜艇: Sub Unlock (Pass as String) for i=1 to Sheets.Count Sheets(i).Unprotect Password

我正在尝试用VBA锁定excel文件。我用默认密码将文件锁定在代码中,并将此密码提供给其他文件中的用户。始终是相同的密码,因此用户无需输入密码,我在开始时将文件锁定给他

我的问题是,我希望用户在表单中输入密码以解锁文件,我不知道如何在调用函数Unprotect之前检查用户输入的密码是否正确

我有一个这样的潜艇:

Sub Unlock (Pass as String)

    for i=1 to Sheets.Count
        Sheets(i).Unprotect Password:=Pass
    next i

end Sub
Sub Unlock (Pass as String)

    'if password is good
        for i=1 to Sheets.Count
            Sheets(i).Unprotect Password:=Pass
        next i
    'else
        msgbox "Try again!"
    'end if

end Sub
如果我对其进行编码,并且密码正确,则一切正常,但如果用户出错,VBA会在用户无法控制的情况下发出错误消息。我想在调用unprotect之前检查密码,如果密码错误,则显示msgbox并让用户再次输入新密码,但我不知道是否存在任何检查密码是否正确的功能

我认为在这样的函数中:

Sub Unlock (Pass as String)

    for i=1 to Sheets.Count
        Sheets(i).Unprotect Password:=Pass
    next i

end Sub
Sub Unlock (Pass as String)

    'if password is good
        for i=1 to Sheets.Count
            Sheets(i).Unprotect Password:=Pass
        next i
    'else
        msgbox "Try again!"
    'end if

end Sub
但我没有办法知道密码是否正确


谢谢你的帮助,对不起我的英语

一种方法是输入您所获得的任何密码,并根据您的需要适当处理异常。这里有一个不错的链接:


一种方法是,不管你得到什么密码,都输入,并根据需要适当处理异常。修复了链接:我正在尝试使用它,但我的Excel VBA无法识别单词Try Catch和Finally作为指令出现在代码中:SVery sorry-我最初向VB添加了一个链接,而不是VBA。我的错-我现在已经更新了。非常感谢!关于错误的说明转到ErrorHandler:现在我有了控制错误的方法。问候语!!很高兴能帮上忙:请你接受我下面的回答,如果你觉得特别亲切,请投赞成票!非常感谢。