2014-09-11 7 views
0

Я пытаюсь заблокировать разблокировать файл 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 

, но у меня нет никакого способа знать «если пароль хорошо».

Спасибо за помощь и извините за мой английский!

+1

Одним из способов является швырнуть в любой пароль, вы дали, и обработать исключение надлежащим образом в соответствии с вашими потребностями. Исправлена ​​ссылка: http://www.cpearson.com/excel/errorhandling.htm – ne1410s

+0

Я пытаюсь ее использовать, но мой Excel VBA не распознает слова «Try» «Catch» и «finally» в коде как инструкции: S – Monchou2

+1

Очень жаль - я изначально добавил ссылку на VB вместо VBA. Моя ошибка - я обновил его сейчас. – ne1410s

ответ

0

Один из способов заключается в том, чтобы выталкивать любой пароль, который вам предоставлен, и обрабатывать исключение соответствующим образом в соответствии с вашими потребностями. Вот приличная ссылка:

http://cpearson.com/excel/errorhandling.htm

Смежные вопросы