我正在为UserForm
编写一个脚本,用户可以通过该脚本进行注册以访问数据库。 UserForm
有三个字段Username
,Password
和Confirm Password
。
我已经做到这一点,在用户选择用户名后,脚本通过现有用户名运行VLookUp
以检查所选用户名是否已存在。如果是,则弹出MsgBox
,建议选择其他用户名。在这种情况下,UserForm
的所有三个字段都被清除。我想将光标定位在Username
字段中,以便用户可以直接填写不同的用户名。但是,在清除所有字段后,password
字段将被选中。我怎么解决这个问题?谢谢你的帮助。
这是我写的代码:
Private Sub usernameinput_AfterUpdate()
Dim username As String
username = usernameinput.Text
Dim temp As String
On Error Resume Next
temp = WorksheetFunction.VLookup(Me.usernameinput.Value, Range("Usernames"), 1, 0)
If username = temp Then
MsgBox ("The username chosen already exists. Please chose a different username."), vbOKOnly + vbInformation, "Existing Username"
Err.Clear
temp = ""
Me.usernameinput.Value = ""
Me.passwordinput.Value = ""
Me.passwordconfirm.Value = ""
Me.usernameinput.SetFocus
On Error GoTo 0
End If
End Sub
答案 0 :(得分:1)
:
声明一个userform范围的变量
Dim reset As Boolean
插入此子
Private Sub HandleReset()
If reset Then
Me.usernameinput.SetFocus
reset = False
End If
End Sub
添加所有其他UserForm控件Enter
事件处理程序以调用HandleReset()
,如下所示:
Private Sub passwordconfirm_Enter()
HandleReset
End Sub
Private Sub passwordinput_Enter()
HandleReset
End Sub