Для целых чисел может использоваться следующее:
Private Sub text1_KeyPress(KeyAscii As Integer)
If Not IsNumeric(text1.Text & Chr(KeyAscii)) And Not KeyAscii = 8 Then KeyAscii = 0
if (KeyAscii>=43) and (KeyAscii<=46) Then KeyAscii = 0
'it ignores '-', '+', '.' and ','
End Sub