VBA EXCEL Numlock включается и выключается, когда я пишу в текстовом поле

Здравствуйте, у меня есть пользовательская форма с текстовым полем, которое должно принимать входные данные определенным образом. Только цифры и с точками и - посередине. Как это например: 111-111.111-111

Коллега предоставил мне кусок кода, который делает это, однако я заметил, что numlock выключается каждый раз, когда кто-то пишет что-то внутри текстового поля. Например, если я напишу 1, он выключится, однако, если я нажму num1, а не просто нажму на него, он запишет все 111-111.111-111.

Это код, был бы признателен, если кто-нибудь может определить, что не так и помогает.

Private Sub BoxProduto5_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

BoxProduto5.MaxLength = 15

Select Case KeyAscii
    Case 48 To 57 'numericos
        If BoxProduto5.SelStart = 3 Then BoxProduto5.SelText = "-"
        'SendKeys "{End}", False
        If BoxProduto5.SelStart = 7 Then BoxProduto5.SelText = "."
        'SendKeys "{End}", False
        If BoxProduto5.SelStart = 11 Then BoxProduto5.SelText = "-"
        'SendKeys "{End}", False
    Case 8 'Aceita o BACK SPACE
    'Case Else ' o resto é travado
    KeyAscii = 0

End Select
End Sub

Это произошло, когда я попытался что-то изменить внутри этого текстового поля.

0 ответов

Другие вопросы по тегам