我如何用密码保护 Excel 用户表单,但允许它在没有密码的情况下重新打开?

How can I password protect an Excel UserForm but allow it to be reopened without the password?

我为我的办公室维护了一个宏工作簿。此工作簿有一个用户窗体菜单,我的团队成员可以使用它来访问宏,但我还包括一个开发人员用户窗体,其中包含允许我绕过某些步骤(例如输入信息、范围等)的控件。我们使用热键来访问这些用户表单。我如何用密码保护此开发人员用户表单,以免其他人意外访问它?

Sub macShowDevPanel()

   frmDevPanel.Show

End Sub

要使用密码保护此面板,您只需添加一些代码来检查用户是否输入了正确的密码。使用 InputBox 和条件条件非常简单。

Sub macShowDevPanel()
    ' Source: http://www.excel-easy.com/vba/examples/protect-macro.html
    Dim password as String

    Select Case password
        Case Is = False
            ' do nothing
        Case Is = "CTM"
            frmDevPanel.Show
        Case Else
            MsgBox ("Incorrect Password")
    End Select

End Sub

请注意,每次按热键打开用户窗体时,如上所示都会要求您输入密码。您可以通过将 password 声明为 public 变量来解决这个问题,这意味着只要 sheet 保持打开状态,它就会作为正确的值存储。当您关闭它并重新打开时,您必须重新输入密码。

Public password as String

Sub macShowDevPanel()

    If password <> "CTM" Then
        password = Application.InputBox("Enter the Dev Panel password", "Dev Panel - Password Protected")
    End If

    Select Case password
        Case Is = "CTM"
            frmDevPanel.Show
        Case Else
            MsgBox ("Incorrect Password")
    End Select

End Sub