Здравствуйте! Ребята, создал ограничение ввода для определенных знаков, не зависимо от ввода текстовых или числовых данных [vba]
Код
Private Sub Txb2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) 'Запрет ввода точки и запятой Dim ThsStr As String Dim ZptStr As String ThsStr = "." ZptStr = "," If InStr(1, ThsStr, ChrW(KeyAscii)) > 0 Or InStr(1, ZptStr, ChrW(KeyAscii)) > 0 Then KeyAscii = 0 End Sub
[/vba] можно ли как-то в данном коде ограничить ввод нулей вначале значений если вводятся чисто числовые данные.
Здравствуйте! Ребята, создал ограничение ввода для определенных знаков, не зависимо от ввода текстовых или числовых данных [vba]
Код
Private Sub Txb2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) 'Запрет ввода точки и запятой Dim ThsStr As String Dim ZptStr As String ThsStr = "." ZptStr = "," If InStr(1, ThsStr, ChrW(KeyAscii)) > 0 Or InStr(1, ZptStr, ChrW(KeyAscii)) > 0 Then KeyAscii = 0 End Sub
[/vba] можно ли как-то в данном коде ограничить ввод нулей вначале значений если вводятся чисто числовые данные.Сергей13
Сообщение отредактировал Сергей13 - Воскресенье, 17.11.2019, 20:43
Private Sub Txb2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If KeyAscii = 44 Or KeyAscii = 46 Or Len(Txb2.Text) = 0 And KeyAscii = 48 Then KeyAscii = 0 End Sub
[/vba]
Если правильно поняла [vba]
Код
Private Sub Txb2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If KeyAscii = 44 Or KeyAscii = 46 Or Len(Txb2.Text) = 0 And KeyAscii = 48 Then KeyAscii = 0 End Sub
Pelena, Правильно поняли, но все-таки при желании обойти ввод нулей возможно, тут походу предвидеть действие пользователя через vba невозможно. Спасибо!
Pelena, Правильно поняли, но все-таки при желании обойти ввод нулей возможно, тут походу предвидеть действие пользователя через vba невозможно. Спасибо!Сергей13
Private Sub Txb2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Select Case KeyAscii Case 48 If Len(Txb2) * Txb2.SelStart = 0 Then KeyAscii = 0 Case 49 To 57 Case Else KeyAscii = 0 End Select End Sub
[/vba]
а может так [vba]
Код
Private Sub Txb2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Select Case KeyAscii Case 48 If Len(Txb2) * Txb2.SelStart = 0 Then KeyAscii = 0 Case 49 To 57 Case Else KeyAscii = 0 End Select End Sub