Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 如何对Excel UserForm进行密码保护,但允许其在没有密码的情况下重新打开?_Vba_Excel_Userform - Fatal编程技术网

Vba 如何对Excel UserForm进行密码保护,但允许其在没有密码的情况下重新打开?

Vba 如何对Excel UserForm进行密码保护,但允许其在没有密码的情况下重新打开?,vba,excel,userform,Vba,Excel,Userform,我为我的办公室维护一个宏工作簿。这个工作簿有一个UserForm菜单,我的队友使用它来访问宏,但我还包括了一个developer UserForm,它带有一些控件,可以让我绕过某些步骤(例如输入信息、范围等)。我们使用热键访问这些用户表单。如何使用密码保护此开发人员用户表单,以便其他人不会意外访问它 Sub macShowDevPanel() frmDevPanel.Show End Sub 要对该面板进行密码保护,只需添加一些代码,检查用户输入的密码是否正确。这是非常简单的使用输入

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

Sub macShowDevPanel()

   frmDevPanel.Show

End Sub

要对该面板进行密码保护,只需添加一些代码,检查用户输入的密码是否正确。这是非常简单的使用输入框和条件

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
作为字符串的公共密码
子macShowDevPanel()
如果密码为“CTM”,则
password=Application.InputBox(“输入开发人员面板密码”,“开发人员面板-密码保护”)
如果结束
选择案例密码
Case Is=“CTM”
frmDevPanel.Show
其他情况
MsgBox(“不正确的密码”)
结束选择
端接头