Я защищаю и удаляю свои листы с помощью кода VBA, найденного в Интернете.
Защита:
Dim pwd1 As String, pwd2 As String
pwd1 = InputBox("Please Enter the password")
If pwd1 = "" Then Exit Sub
pwd2 = InputBox("Please re-enter the password")
If pwd2 = "" Then Exit Sub
'Check if both the passwords are identical
If InStr(1, pwd2, pwd1, 0) = 0 Or _
InStr(1, pwd1, pwd2, 0) = 0 Then
MsgBox "Password not matching. Please retry."
Exit Sub
End If
For Each ws In Worksheets
ws.Protect Password:=pwd1
Next
MsgBox "All worksheets Protected."
Exit Sub
Снятие защиты:
On Error GoTo ErrorOccured
Dim pwd1 As String
pwd1 = InputBox("Please Enter the password")
If pwd1 = "" Then Exit Sub
For Each ws In Worksheets
ws.Unprotect Password:=pwd1
Next
MsgBox "All sheets UnProtected."
Exit Sub
ErrorOccured:
MsgBox "Sheets could not be UnProtected - Password Incorrect"
Exit Sub
Защита работает хорошо. Снятие защиты с правильным вводом пароля было успешным, но макрос все еще перескочил к обработчику ошибок ErrorOccured
и отображает сообщение
Листы не могут быть незащищены - неверный пароль
все еще появляется.
В чем была проблема? Как я могу это исправить?