vb这样的函数不知道,自己写了个 Private Sub Form_Load() Dim s As String, s1 As String, s2 As String Dim i As Long s = "adsk312131kxc,21123k12j`" s2 = "" For i = 1 To Len(s) s1 = Mid$(s, i, 1) If s1 >= "0" And s1 <= "9" Then s2 = s2 & s1 End If Next Debug.Print s2 End Sub
Option ExplicitSub FindNo(strVal As String) Dim str1, str2, i
For i = 1 To Len(strVal) str1 = Mid(strVal, i, 1) If InStr(1, "0123456789", str1) > 0 Then str2 = str2 & str1 NextDebug.Print str2 End SubPrivate Sub Form_Load() FindNo "123456" End Sub
Option ExplicitSub FindNo(strVal As String) Dim str1$, str2$, i%
For i = 1 To Len(strVal) str1 = Mid(strVal, i, 1) If IsNumeric(str1) Then str2 = str2 & str1 Next Debug.Print str2 End SubPrivate Sub Form_Load() FindNo "12as3dsa45asfd6" End Sub
●Str
MyVal = 12345
MyStr = Str(MyVal)
结果
MyStr = " 12345" MyVal = 3.14159
MyStr = Str(MyVal)
结果
MyStr = " 3.14159" MyVal = 3.14159
MyStr = Trim(Str(MyVal))
结果
MyStr = "3.14159" ●Val
MyStr = "12345"
MyVal = Val(MyStr)
结果
MyVal = 12345 MyStr = "3.14159"
MyVal = Val(MyStr)
结果
MyVal = 3.14159 MyStr = "3A1B"
MyVal = Val(MyStr)
结果
MyVal = 0
不是吧 你是不是要 MyStr = "3A1B"
MyVal = Val(MyStr)
结果
MyVal = 31
??
Private Sub Form_Load()
Dim s As String, s1 As String, s2 As String
Dim i As Long
s = "adsk312131kxc,21123k12j`"
s2 = ""
For i = 1 To Len(s)
s1 = Mid$(s, i, 1)
If s1 >= "0" And s1 <= "9" Then
s2 = s2 & s1
End If
Next
Debug.Print s2
End Sub
对,许仙我就是要这个效果. MyStr = "3A1B"
MyVal = Val(MyStr)
结果
MyVal = 31
不知道VAL行不,我去试试
Dim str1, str2, i
For i = 1 To Len(strVal)
str1 = Mid(strVal, i, 1) If InStr(1, "0123456789", str1) > 0 Then str2 = str2 & str1
NextDebug.Print str2
End SubPrivate Sub Form_Load()
FindNo "123456"
End Sub
Dim str1$, str2$, i%
For i = 1 To Len(strVal)
str1 = Mid(strVal, i, 1) If IsNumeric(str1) Then str2 = str2 & str1
Next Debug.Print str2
End SubPrivate Sub Form_Load()
FindNo "12as3dsa45asfd6"
End Sub