如何使用密码保护Excel UserForm但允许在没有密码的情况下重新打开它?

时间:2017-05-26 18:22:35

标签: excel vba excel-vba userform

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

Sub macShowDevPanel()

   frmDevPanel.Show

End Sub

1 个答案:

答案 0 :(得分:0)

要对此面板进行密码保护,您只需添加一些代码即可检查用户是否输入了正确的密码。使用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

请注意,每次按热键打开UserForm时,如上所示执行此操作都会要求您输入密码。您可以通过将password声明为公共变量来解决这个问题,这意味着只要工作表保持打开状态,它就会保留为正确的值。当您关闭它并重新打开时,您将不得不重新输入密码。

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