Private Sub cmd_lock_Click()
Dim Pwd As String
Dim i As Integer
Dim dir As Integer
For i = 1 To 4
MsgBox "加密可以防止其他用户对你填写的数据的修改,确定加密吗?", 32 + 1, "加密提示"
cycle: Pwd = InputBox("请输入密码:", "身份验证") //我以前描述的就是这个InputBox函数窗体中的输入区域(文本框)默认是明文显示的,我现在要用这个做密码验证需要密文(*号)显示,但这个函数好象做不到,所以想自己写个能返回输入的密码的窗体或控件。在程序中调用这个窗体然后根据该窗体返回的值判断程序流向。
If Pwd = "000" Then
Worksheets("Sheet1").Unprotect Password:=28465
Worksheets("Sheet1").Range("C4:D4").Locked = True
Worksheets("Sheet1").Range("F4:G4").Locked = True
tbx_llr.Enabled = False
tbx_notice.Enabled = False
Worksheets("Sheet1").Protect Password:=28465
MsgBox "加密已成功完成", 32 + 1, "加密提示"
Exit For
Else
dir = MsgBox("密码错误请重新输入", 16 + 1, "密码错误提示")
If dir = 2 Then
Exit Sub
End If
If i > 3 Then
MsgBox "超过最大密码错误次数(3次),你将没有权限对此文档加密!", 16 + 1, "密码错误提示"
Exit For
End If
i = i + 1
GoTo cycle
End If
Next i
End Sub
后来我自己做了一个返回密码的窗体,就是通过输入的值赋给一个全局变量,然后通过该全局变量来获得返回的值。
改进后的代码如下:
.//省略部分跟上面代码一样
.
.
cycle: 身份验证.Show //此为自己做的返回密码窗体
If PWD = 系统登录验证.取指定用户密码(身份验证.tbx_uname) Then // PWD 是全局变量,"取指定用户密码"是标准模块"系统登录验证"的自定义函数,现在的问题是: 密码是可以返回了,就是程序执行完"身份验证.show"后就不再继续往下执行了,我分析原因是,程序执行完"身份验证"窗体的command_click()事件后,是不可能自己跳回本程序继续执行的.
.
.
.
各位大虾能指点一下吗?
谢谢!