'以下代码在窗体中 并有一个Text1的TextBox Private Sub Text1_Change() If Not IsNumeric(Text1.Text) Then Text1.Text = 0 End If End SubPrivate Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii <> 8 Then If Not IsNumeric(Text1.Text + Chr(KeyAscii)) Then KeyAscii = 0 End If End If End Sub
窗体上加Text1和Command1Option Explicit Private Sub Command1_Click() Dim str As String str = Trim(Text1.Text) If str = "" Then MsgBox "请输入", vbInformation, "提示" Exit Sub End If If Not IsNumeric(str) Then MsgBox "输入的不是数字,请重新输入", vbInformation, "提示" Exit Sub End If If Left(str, 1) = "." Then MsgBox "输入的数字不能以“.”开头,请重新输入", vbInformation, "提示" Exit Sub End If If Right(str, 1) = "." Then MsgBox "输入的数字不能以“.”结尾,请重新输入", vbInformation, "提示" Exit Sub End If End Sub
直接用正则表达式检验 Function CheckReg(Pattern,IgnoreCase,TestStr) Dim regEx,result Set regEx=New RegExp regEx.Global=true regEx.IgnoreCase=IgnoreCase regEx.Pattern=Pattern result=regEx.Test(Trim(TestStr)) regEx=Nothing CheckReg=result End Function Rem 假如你要检验的文本框是Text1.text MsgBox CheckReg("^[+-]?(\d)*(\.)?(\d)*$",true,Text1.text)
Private Sub Text1_Change()
If Not IsNumeric(Text1.Text) Then
Text1.Text = 0
End If
End SubPrivate Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii <> 8 Then
If Not IsNumeric(Text1.Text + Chr(KeyAscii)) Then
KeyAscii = 0
End If
End If
End Sub
Private Sub Command1_Click()
Dim str As String
str = Trim(Text1.Text)
If str = "" Then
MsgBox "请输入", vbInformation, "提示"
Exit Sub
End If
If Not IsNumeric(str) Then
MsgBox "输入的不是数字,请重新输入", vbInformation, "提示"
Exit Sub
End If
If Left(str, 1) = "." Then
MsgBox "输入的数字不能以“.”开头,请重新输入", vbInformation, "提示"
Exit Sub
End If
If Right(str, 1) = "." Then
MsgBox "输入的数字不能以“.”结尾,请重新输入", vbInformation, "提示"
Exit Sub
End If
End Sub
Dim regEx,result
Set regEx=New RegExp
regEx.Global=true
regEx.IgnoreCase=IgnoreCase
regEx.Pattern=Pattern
result=regEx.Test(Trim(TestStr))
regEx=Nothing
CheckReg=result
End Function
Rem 假如你要检验的文本框是Text1.text
MsgBox CheckReg("^[+-]?(\d)*(\.)?(\d)*$",true,Text1.text)