selectComboBox AfterUpdate Excel VBA
我正在为UserForm
编写一个脚本,用户可以通过它来注册以访问数据库。 UserForm
有三个字段, Username
, Password
和Confirm Password
。
我已经这样做了,用户select一个用户名后,脚本通过现有的用户名运行一个VLookUp
来检查用户名是否已经存在。 如果是这样,一个MsgBox
popup,build议select另一个用户名。 在这种情况下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
你可以像下面这样做:
在您的用户窗体代码窗格中:
-
声明一个用户窗体范围的variables
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