selectComboBox AfterUpdate Excel VBA

我正在为UserForm编写一个脚本,用户可以通过它来注册以访问数据库。 UserForm有三个字段, UsernamePasswordConfirm Password

我已经这样做了,用户select一个用户名后,脚本通过现有的用户名运行一个VLookUp来检查用户名是否已经存在。 如果是这样,一个MsgBoxpopup,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