Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Worksheets("Sheet1").Range("A1").Value = TextBox1.Value
If Not (KeyAscii >= 48 And KeyAscii <= 57) Then
KeyAscii = 0
MsgBox "Digits only"
End If
End Sub
Код используется для текстового поля в пользовательской форме.
Вчера я получил некоторую помощь и получил этот полезный фрагмент кода VBA, который прекрасно работает. Однако в этом есть небольшая ошибка. Предполагается, что текстовое поле может принимать только цифры (отсюда KeyAscii >= 48 And KeyAscii <= 57
), однако последняя входная цифра не преобразуется в ячейку.
Например, когда вы набираете «1234» в текстовом поле, он записывает только «123» в ячейку и пропускает последнюю цифру.