密码保护没有取消保护

时间:2016-09-22 12:55:25

标签: excel vba excel-vba

我有一个将分发给多个部门的工作簿。每个部门在工作簿中都有自己的工作表,他们必须在某些单元格中输入注释。我对每张纸张进行密码保护,除了他们要输入其纸币的单元格(许多公式引用其他纸张,除了我之外,任何人都无法触及)。除了密码保护之外,我还添加了一个VBA代码,以便在用户添加备注之前立即提示用户输入密码(以阻止其他部门将备注输入到错误的表格中。)每个部门都有自己的密码。问题是,当输入正确的部门密码时,我的代码会取消保护整个工作表,将我锁定的单元格暴露给其他用户。我需要一个代码,在选择工作表时会提示用户,并且当密码正确输入时,它只会取消保护未锁定的单元格。这就是我到目前为止所做的:

Sub Worksheet_Activate()
    Const Passwrd As String = "abc123"
    Dim sInput As Variant
    Dim Attempt As Integer
    Me.Protect Password:=Passwrd
    Attempt = 1
    Do
    sInput = InputBox("Please enter the password for this sheet", "Password    Required    Attempt:" & Attempt)
        If StrPtr(sInput) = 0 Then
        'cancel pressed
            Exit Do
        ElseIf sInput = Passwrd Then    ' Valid Password
            Me.Unprotect Password:=Passwrd
            Exit Do
        Else
            MsgBox "Invalid Password", 48, "Invalid"
            Attempt = Attempt + 1
        End If
    Loop Until Attempt > 3    ' "Don't let the inputbox close if the password is not correct

End Sub

0 个答案:

没有答案