У меня есть пользовательская форма, которая отображает текстовое содержимое различных ячеек в активном рабочем листе и имеет текстовое поле, позволяющее пользователям вводить новую информацию.
UF обновляется автоматически всякий раз, когда пользователь выбирает новую ячейку / диапазончерез событие Workbook_SheetSelectionChange.
В конце процедуры обновления UF (публичная подпрограмма в модуле кода UF) я использую TextBoxName.SetFocus (наряду с .SelStart = .TextLenght), чтобы установить фокус на текстокно, готовое для того, чтобы пользователь мог начать печатать.
Теперь эта процедура обновления также запускается, когда UF активируется через событие UserForm_Activate.
Вот моя проблема
Когда UF активируется, фокус успешно установлен на TextBox с курсором, видимым в конце текста, и все, что я набираю, вводится в TextBox, как и ожидалось.
НО, если я нажимаю на новую ячейку, котораявыполняет ту же процедуру обновления, за исключением события Workbook_SheetSelectionChange, происходит нечто странное.Технически фокус на TextBox, но курсор не виден.Пробел, Enter и Backspace все работают как положено, однако буквы и цифровые клавиши не работают.Т.е. я могу удалить текст или нажать клавишу ввода, чтобы добавить новые строки, но если я нажму любую другую клавишу с цифрой / буквой, ничего не произойдет, пока я не использую мышь, чтобы снова щелкнуть текстовое поле.
Я попытался переместитьпроцедура из модуля UF, использующая .SetFocus в разных местах, в том числе после того, как Workbook_SheetSelectionChange вызывает процедуру обновления, но ничего не работает.
Что еще можно попробовать?
Заранее спасибо!