У меня есть код, который перемещает введенное значение времени в поле, используя указанный c формат времени. Однако при вводе времени, если оно не введено в правильном формате, пользователь получает ошибку Runtime 13, а затем не может ничего сделать, кроме как закрыть пользовательскую форму, остановить выполнение кода и повторить попытку. Я могу отформатировать сообщение, чтобы вернуть сообщение об ошибке, сообщающее пользователю исправить запись, но какой код я использую, чтобы вернуть пользователя в поле и позволить ему внести исправление? Я помещаю код для этого текстового поля формы пользователя здесь для справки:
Private Sub txtDepartTime_AfterUpdate()
'When time is entered, time transfers immediately to spreadsheet datafield.
Dim TargetRow As Integer
TargetRow = Sheets("Codes").Range("D43").Value + 1
With Sheets("Travel Expense Voucher").Range("Data_Start").Offset(TargetRow, 25)
.Value = TimeValue(txtDepartTime)
.NumberFormat = "hh:mm" 'departure time
End With
End Sub