Я обнаружил, что в течение пары часов этот код работал:
If KeyCode = 37 Then
Me.Text12.SetFocus
End If
Потом он загадочным образом перестал работать. Я подумал, что это может быть как-то связано с обработкой подпрограммы OnEnter (я двигаю курсор в конец текстового поля).
Однако редактирование подпрограммы OnEnter не помогло. Единственное, что я сделал, это изменил язык ввода/клавиатуры (чтобы можно было вводить кавычки и они сразу появлялись, ура!)
Теперь у меня есть этот код:
On Error Resume Next
If KeyCode = 37 Then
Me.Text12.SetFocus
Me.Text12.SetFocus
End If
Который работает. Итак, я знаю, что более 50 страниц результатов поиска для SetFocus не работают, которые относятся к тому, что он скрыт, отключен, невидим, пьет чай с викарием и т. д., не применимы здесь.
Я также попытался сначала установить фокус на другой элемент управления, а также широко применил DoEvents, но ни один из них не помог.
Кто-нибудь сталкивался с чем-то подобным или это просто очень странный Heisenbug?