【问题标题】:How to check if the unprotect password of an excel file is correct with vba?如何使用vba检查excel文件的未保护密码是否正确?
【发布时间】: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


【解决方案1】:

一种方法是输入您提供的任何密码,并根据您的需要适当地处理异常。这是一个不错的链接:

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

【讨论】:

    猜你喜欢
    • 2023-03-03
    • 1970-01-01
    • 2012-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-24
    • 2013-02-05
    • 1970-01-01
    相关资源
    最近更新 更多