简单代码密码重试

时间:2018-07-06 15:18:34

标签: vba password-protection

我是一个初学者,我已经在Google上度过了几个小时,但没人能找到答案。

要测试错误,请输入两个任意密码以引起错误–第一次可以正常运行(第1笔),但是第二个密码错误则失败。它在驱赶我香蕉!我试图重置错误计数器??? –对我没有任何帮助!

我有一个打开的工作簿,其中包含“ ThisWorkbook”上的例程,并调用(分支)模块9上的“ Sub Password_Check”。我是一个旧的Fortran编程器,但VBA更加复杂!

    Sub Password_Check()
    Dim i As Integer
    iTotal = 0
    On Error GoTo Message
    For i = 1 To 3
    ActiveSheet.Unprotect
    Message:
    If i = 1 Then MsgBox "          STRIKE " & (i)
    If i = 2 Then MsgBox "          STRIKE " & (i)
    If i = 3 Then MsgBox "          STRIKE " & (i)
    Next
    Application.Quit
    End Sub

我将非常感谢!

此致

Oscar G Duarte

在此先感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您的错误在for循环内。您想要给用户三种尝试来解锁工作簿的尝试。您需要将错误处理程序置于循环之外。我不是VBA程序员或Windows用户,因此我无法对其进行测试,但是您的逻辑需要看起来像这样。希望它会有所帮助。在VBA上下文中查看错误处理和子例程。

Sub Password_Check() 
    Dim i As Integer
    iTotal = 0 
    On Error GoTo ErrorHandler 
    For i = 1 To 3 
        ActiveSheet.Unprotect 
    Next

    Exit Sub

    ErrorHandler: 
        MsgBox " STRIKE " & (i)
        if i = 3 Then 
            Application.Quit
        Else
            Resume

End Sub
相关问题