【发布时间】:2014-11-05 20:00:28
【问题描述】:
我正在尝试使用 VBA 锁定解锁 excel 文件。我使用默认密码将文件锁定在代码中,并将此密码提供给其他文件中的用户。始终是相同的密码,因此用户无需输入密码,我给他的是一开始就锁定的文件。
我的问题是我希望用户在表单中输入密码来解锁文件,我不知道如何在调用函数 Unprotect 之前检查用户输入的密码是否正确。
我有一个这样的子:
Sub Unlock (Pass as String)
for i=1 to Sheets.Count
Sheets(i).Unprotect Password:=Pass
next i
end Sub
如果我对此进行编码并且密码正确,则一切正常,但如果用户犯了错误,VBA 会给出用户无法控制的错误消息。我想在调用 unprotect 之前检查代码中的密码,如果错误,显示一个 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
但我无法知道“密码是否正确”。
感谢您的帮助,对不起我的英语!
【问题讨论】:
-
一种方法是输入您提供的任何密码,并根据您的需要适当地处理异常。修复链接:cpearson.com/excel/errorhandling.htm
-
我正在尝试使用它,但我的 Excel VBA 无法识别代码中的“Try”、“Catch”和“Finally”作为指令:S
-
非常抱歉 - 我最初添加了一个指向 VB 的链接,而不是 VBA。我的错 - 我现在已经更新了。
-
非常感谢!使用 On Error GoTo ErrorHandler 指令:现在我有了控制错误的方法。问候!!
-
很高兴能得到一些帮助 :) 请您接受我在下面的回答 - 如果您感觉特别好,请投上一票!谢谢
标签: excel vba passwords unlock