VB中,怎么使TEXT控件只能输入数字行数据(包括小数)?

例如只能输入实型数据 其它的就提示报错?
谢谢!

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyHome, vbKeyLeft, vbKeyUp '限制只能在末尾输入
KeyCode = 0
End Select
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 46 '小数点
If Text1 = "" Then
Text1 = "0" 'Text1无内容时输入小数点,自动在小数点之前添加0
Text1.SelStart = 1
Else
If InStr(Text1, ".") > 0 Then KeyAscii = 0 '禁止重复输入小数点
End If
Case 48 '0
If Text1 = "" Then
Text1 = "0."
Text1.SelStart = 2
KeyAscii = 0
End If
Case 49 To 57 '1-9
If Left(Text1, 1) = "0" And InStr(Text1, ".") = 0 Then
Text1 = Mid(Text1, 2)
Text1.SelStart = Len(Text1)
End If
Case vbKeyBack '支持退格键
If Right(Text1, 1) = "." Then
If Val(Text1) = 0 Then
Text1 = ""
KeyAscii = 0
End If
End If
Case Else
MsgBox "请输入数字或小数点!"
KeyAscii = 0
End Select
End Sub
Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyHome, vbKeyLeft, vbKeyUp '限制只能在末尾输入
KeyCode = 0
End Select
End Sub
Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Text1.SelStart = Len(Text1) '限制只能在末尾输入
End Sub
Private Sub Text1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Text1.SelStart = Len(Text1) '限制只能在末尾输入(取消选择)
End Sub
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-07-02
Private Sub Text1_Change()            '文本框更改事件
If Not IsNumeric(Text1.Text) Then     '判断文本框内是否为数字
MsgBox "请输入数字", vbCritical       '若非数字,所错
Text1.SelStart = Len(Text1.Text) - 1   '并自动选中刚刚输入的字符
Text1.SelLength = 1                    '以便重新输入正确的字符
End If
End Sub

本回答被网友采纳
第2个回答  2015-07-02
ISNUMBER函数只有一个参数value,表示进行检验的内容,如果检验的内容为数字,将返回TRUE,否则将返回FALSE。
IS类的函数的value参数是不可以转换的。如在其他大多数需要数字的函数中,文本值“13”并不会有文本值转换成数字13,而是公式“=ISNUMBER(”13“)”中,“13”并不会由文本值转换成其他类型的值,因此函数ISNUMBER会返回FALSE值,认为该函数不是数字。
a=mid(text1.text,2,len(text1.text)-2)
if isnumber(a)=false then
msgbox"错误"
end if

VB中,怎么使TEXT控件只能输入数字行数据(包括小数)?
Text1.SelStart = Len(Text1) '限制只能在末尾输入 End Sub Private Sub Text1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)Text1.SelStart = Len(Text1) '限制只能在末尾输入(取消选择)End Sub

VB文本框怎样限制只能输入数字值
1、 新建一个标准EXE程序。2、 绘制界面,添加一个 Textbox 控件,改名为 txbNumber。3、 编写代码。在代码窗口中,添加 txbNumber_KeyPress 事件。4、查ASCII码表,得到0的ASCII码是48。输入以下语句:If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0 这条语句用来判断输入的字符是否在0-...

VB中如何让几十个TEXTBOX中只能输入数字,小数点,进行计算用,
用控件数组,如果是点击按钮就判断的话就用for循环来判断,例如先在窗体上放置一个Text1,然后复制它再粘贴到同一个窗体上,当提示是否创建控件数组时选择是,再复制三次,这样窗体上就有5个文本框了,text1就变成了Text1(0),Text1(1),Text1(2),Text1(3),Text1(4),添加一个确定按钮,写...

vb中,如何限制输入的文本框的内容只能是数字数或者字母?
Private Sub Text3_Change()If IsNumeric(Text3) = False Then MsgBox "不是数字,请输入数字", 0, "提示"Text3.SetFocus Text3.SelStart = Len(Text3)SendKeys "{BACKSPACE}"ElseIf Val(Text3) - CLng(Text3) <> 0 Then'有点懒 MsgBox "不是整数,请输入整数", 0, "提示"End If...

VB6.0中,怎么样让文本框只能输入数字与小数点,及退格键。 请各位帮助...
利用文本框的 Private Sub Text1_KeyPress(KeyAscii As Integer)If KeyAscii < Asc(0) Or KeyAscii > Asc(9) Then KeyAscii = 0 MsgBox "请输入数字"End If End Sub 是只能接收输入数字的代码。asc()函数是求ascii值的 小数点问题你自己试着用asc函数解决。

VB中的文本框怎么设置才能只输出数字
简单易明地说明一下:在Text1和Text2的KeyPress事件中加入下面的代码,即可实现。--- 只能是数字:If KeyAscii < Asc("0") Or KeyAscii > Asc("9") Then KeyAscii = 0 --- 只能是数字和BackSpace(消除键):If (KeyAscii < Asc("0") Or KeyAscii > Asc("9")) And KeyAscii <> 8 ...

VB 怎样实现多个文本框,只能输入数字和小数点,并保留小数点后两位
Private Sub T2_Change()Dim str As String Dim Sn As Integer Sn = T2.SelStart str = T2.Text str = Format(Val(str), "0.00")T2.Text = str T2.SelStart = Sn End Sub Private Sub T2_KeyPress(KeyAscii As Integer)If KeyAscii = 13 Then '回车后跳到下一个txt 'T3.Set...

请教VB高手:VB文本框禁止输入数字、减号、小数点意外的字符。
Dim OldText As StringPrivate Sub Form_Load()Text1.Text = ""End SubPrivate Sub Text1_Change() '屏蔽粘贴非数字If IsNumeric(Text1.Text) And Right(Text1.Text, 1) <> "-" Or Text1.Text = "" Or Text1.Text = "-" Then OldText = Text1.TextElse Text1.Text = Old...

vb中限制一个文本框只能输入数字和一个小数点和退格键。
End IfElse If (Chr(KeyAscii) > "9 " Or Chr(KeyAscii) < "0 ") And Chr(KeyAscii) <> "." And KeyAscii <> 48 And KeyAscii <> 8 Then KeyAscii = 0 End IfEnd IfEnd Sub在窗体中建立一个text1的文本框,输入如上命令即可实现。

在VB中如何控制TEXT的text属性中只能输入一个小数点
Text1。Private Sub Text1_KeyPress(KeyAscii As Integer)If InStr(Text1.Text, ".") And KeyAscii = 46 Then KeyAscii = 0 End If End Sub InStr 函数检查是否存在“.”,KeyAscii = 46 表示按下“.”时。整个意思就是:如果存在“.” 与 按下“.” 那么,KeyAscii = 0 屏蔽。

相似回答