Я пишу скрипт для UserForm
, через который пользователи могут зарегистрироваться для доступа к базе данных. UserForm
имеет три поля: Username
, Password
и Confirm Password
.Выберите ComboBox AfterUpdate Excel VBA
Я сделал так, чтобы после того, как пользователь выберет имя пользователя, сценарий запускает 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
У вас есть обработчики для любого из этих элементов управления? Возможно ли, что строка для 'SetFocus' каким-то образом пропущена некоторой ошибкой в коде? Что произойдет, если вы выберете точку останова на этой строке, а затем продолжите шаг за шагом? –
Линия не пропускается. Я запустил код шаг за шагом, а функция 'SetFocus' функционировала, но после' End Sub' поле «Password» выбрано. – franciscofcosta