Я пытаюсь заблокировать разблокировать файл Excel с помощью VBA. Я блокирую файл в коде паролем по умолчанию, и я предоставляю этот пароль пользователю в другом файле. Всегда один и тот же пароль, поэтому пользователю не нужно вводить его, я даю ему файл, заблокированный в начале.Как проверить, правильно ли пароль защиты файла excel с vba?
Моя проблема заключается в том, что я хочу, чтобы пользователь вводил пароль в форме, чтобы разблокировать файл, и я не знаю, как проверить правильность введенного пользователем пароля перед вызовом функции Снять защиту.
У меня есть к югу, как это:
Sub Unlock (Pass as String)
for i=1 to Sheets.Count
Sheets(i).Unprotect Password:=Pass
next i
end Sub
Если я код этого и пароль правильно, все в порядке, но если пользователь делает ошибку, VBA выдает сообщение об ошибке из-под контроля пользователя , Я хочу проверить код пароля перед вызовом с защитой и, если это неправильно, показать msgbox и позволить пользователю вводить новый пароль снова, но я не знаю, существует ли какая-либо функция, которая проверяет правильность пароля.
Я думаю, что в функции, как это:
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
, но у меня нет никакого способа знать «если пароль хорошо».
Спасибо за помощь и извините за мой английский!
Одним из способов является швырнуть в любой пароль, вы дали, и обработать исключение надлежащим образом в соответствии с вашими потребностями. Исправлена ссылка: http://www.cpearson.com/excel/errorhandling.htm – ne1410s
Я пытаюсь ее использовать, но мой Excel VBA не распознает слова «Try» «Catch» и «finally» в коде как инструкции: S – Monchou2
Очень жаль - я изначально добавил ссылку на VB вместо VBA. Моя ошибка - я обновил его сейчас. – ne1410s