Я не силен в макросах, осваиваю эту тему, помогите пож. Включена защита листа Еxcel (2003) через "Сервис", написан макрос на отключение защиты, всплывает окно для ввода пароля, если вводишь пароль правильно проблем нет, но если не правильно всплывает окно Run-time error 1004 Не верный пароль. Пример файла прикреплен. Как обойти эту ошибку?
Я не силен в макросах, осваиваю эту тему, помогите пож. Включена защита листа Еxcel (2003) через "Сервис", написан макрос на отключение защиты, всплывает окно для ввода пароля, если вводишь пароль правильно проблем нет, но если не правильно всплывает окно Run-time error 1004 Не верный пароль. Пример файла прикреплен. Как обойти эту ошибку?Skip
Sub Редактировать() On Error Resume Next ActiveSheet.Protect DrawingObjects:=False, Contents:=False, Scenarios:=False If Err.Number Then MsgBox "Неверный пароль" End Sub
[/vba]
Я б добавил еще обработчик ошибки [vba]
Код
Sub Редактировать() On Error Resume Next ActiveSheet.Protect DrawingObjects:=False, Contents:=False, Scenarios:=False If Err.Number Then MsgBox "Неверный пароль" End Sub
Sub Редактировать() On Error Resume Next ActiveSheet.Protect DrawingObjects:=False, Contents:=False, Scenarios:=False If Err.Number Then MsgBox "Неверный пароль" End Sub
Большое спасибо за помощь, работает как надо, буду адаптировать к полному коду. А как написать прекратить выполнение макроса если пароль неверен, продолжить если правильный, а то получается при неверном пароле следующие строки всё же выполняются?
Sub Редактировать() On Error Resume Next ActiveSheet.Protect DrawingObjects:=False, Contents:=False, Scenarios:=False If Err.Number Then MsgBox "Неверный пароль" End Sub
Большое спасибо за помощь, работает как надо, буду адаптировать к полному коду. А как написать прекратить выполнение макроса если пароль неверен, продолжить если правильный, а то получается при неверном пароле следующие строки всё же выполняются?Skip
Сообщение отредактировал Skip - Суббота, 28.01.2017, 19:42
В зависисмости от того что вам надо сделать EXIT .... (https://msdn.microsoft.com/en-us/library/office/gg251570(v=office.15).aspx странно , эти ссылки криво отображаютяся усли использовать коды) . Ну и естественно внутри констукции IF THEN END IF
Также можно GOTO (https://msdn.microsoft.com/en-us/library/office/gg251368(v=office.15).aspx) хотя в эпоху моей молодости использование таких переходов считалось плохим стилем. Однако если его использовать, то лучше уж в, вашем случае, например так[vba]
Код
Sub Редактировать() On Error Goto err1 ActiveSheet.Protect DrawingObjects:=False, Contents:=False, Scenarios:=False ....... ' основной код exit sub err1: MsgBox "Неверный пароль" End Sub
[/vba]
Skip,
В зависисмости от того что вам надо сделать EXIT .... (https://msdn.microsoft.com/en-us/library/office/gg251570(v=office.15).aspx странно , эти ссылки криво отображаютяся усли использовать коды) . Ну и естественно внутри констукции IF THEN END IF
Также можно GOTO (https://msdn.microsoft.com/en-us/library/office/gg251368(v=office.15).aspx) хотя в эпоху моей молодости использование таких переходов считалось плохим стилем. Однако если его использовать, то лучше уж в, вашем случае, например так[vba]
Код
Sub Редактировать() On Error Goto err1 ActiveSheet.Protect DrawingObjects:=False, Contents:=False, Scenarios:=False ....... ' основной код exit sub err1: MsgBox "Неверный пароль" End Sub
Sub Редактировать() On Error Goto err1 ActiveSheet.Protect DrawingObjects:=False, Contents:=False, Scenarios:=False ....... ' основной код exit sub err1: MsgBox "Неверный пароль" End Sub
Огромнейшее спасибо! С Вашей помощью решились все проблемы. Целый день сидел "колдовал" над этим паролем. Очень Вам благодарен, СПАСИБО!
Sub Редактировать() On Error Goto err1 ActiveSheet.Protect DrawingObjects:=False, Contents:=False, Scenarios:=False ....... ' основной код exit sub err1: MsgBox "Неверный пароль" End Sub
Огромнейшее спасибо! С Вашей помощью решились все проблемы. Целый день сидел "колдовал" над этим паролем. Очень Вам благодарен, СПАСИБО!Skip