2014-09-28 223 views
1

我有一些用于我的Excel电子表格的用户表单,我需要为某些我不希望大多数人访问的任务设置管理面板。在VBA密码框中加密密码

我的问题是,我可以设置一个简单的密码保护窗体,但文本始终可见。我想尝试加密它,所以如果有人正在查看我应该或其他管理员的肩膀,那么他们看不到密码。

反正有没有文字显示为****或类似的东西?

感谢 铝

Private Sub CommandButton1_Click() 
Dim MyValue As Variant 
MyValue = InputBox("Enter Password") 
    If MyValue = "lemonade" Then 'lemonade being the password 
    Application.Visible = True 
    Else 
    MsgBox ("Password Incorrect") 
End If 
End Sub 

编辑 - 我已经修改了它按照你的建议,因为我有它弹出一个输入框,而不是创造我自己的用户窗体中。

If Pword2.Value = "lemonade" Then 
AddPick1.Hide 
Report1.Hide 
Unload Me 
Admin1.Show vbModal 
Else 
MsgBox ("Password Incorrect") 
End If 

当密码不正确,但是它给出了不正确的密码错误时,它是正确的它给了我下面的错误(必须关闭隐藏最顶层的模式窗体的第一个),但我把它设置为隐藏所有其他形式在加载Admin1表单之前?

回答

2

在TextBox属性中有一个名为PasswordChar的属性。在这里输入您的首选'隐藏'字符。

如果您希望使用“鼠标移动”和“鼠标移动”事件,还可以在窗体中添加一个按钮以显示密码。的MouseDown看起来像一个文本框名为TextBox1的下面,并使用名为CommandButton1的按钮:

Private Sub CommandButton1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) 
    TextBox1.PasswordChar = vbNullChar 
End Sub 

我将离开你的代码的MOUSE_UP事件。

This link会给你使用,但你会发现很多谷歌搜索的例子。

+0

感谢您@barryleajo我跟着,但即时得到一个模态错误。我修改了代码以及它的加载方式。 PS对不起,我很痛苦haha – 2014-09-28 08:46:25

+0

不要使用InputBox,只需在现有的用户窗体上为密码创建一个TextBox。 – barryleajo 2014-09-28 08:57:44

+0

谢谢采取了这个建议,并得到它的工作:-) – 2014-09-28 09:33:07