其中字符串的长度是不固定的!
分不够可以再加!
10 个解决方案
#1
用SubString读出每个字符,或者用Pos直接提取
#2
'strTemp 是你的字符串
for i=1 to len(strTemp)
if mid(strTemp,i,1)>="0" and mid(strTemp,i,1)<="9" then
mid(strTemp,i,1)是数字
end if
next i
for i=1 to len(strTemp)
if mid(strTemp,i,1)>="0" and mid(strTemp,i,1)<="9" then
mid(strTemp,i,1)是数字
end if
next i
#3
有其他的方法吗?
#4
其实上面那位的想法很正确啊,把字符串分割开来,判断ASIIC符就可以知道是不是数字了
#5
Private Sub Command1_Click()
MsgBox GetNumFromString("asda32423sdsa908098sdfsd")
End Sub
Public Function GetNumFromString(X As String) As String
Dim i As Long
For i = 0 To VBA.Len(X) - 1
If VBA.Asc(VBA.Mid(X, i + 1, 1)) >= VBA.Asc("0") And VBA.Asc(VBA.Mid(X, i + 1, 1)) <= VBA.Asc("9") Then
GetNumFromString = GetNumFromString & VBA.Mid(X, i + 1, 1)
End If
Next i
End Function
MsgBox GetNumFromString("asda32423sdsa908098sdfsd")
End Sub
Public Function GetNumFromString(X As String) As String
Dim i As Long
For i = 0 To VBA.Len(X) - 1
If VBA.Asc(VBA.Mid(X, i + 1, 1)) >= VBA.Asc("0") And VBA.Asc(VBA.Mid(X, i + 1, 1)) <= VBA.Asc("9") Then
GetNumFromString = GetNumFromString & VBA.Mid(X, i + 1, 1)
End If
Next i
End Function
#6
哇,我才去找了一下源码就已经有人写好了,快啊
#7
For i = 0 To VBA.Len(X) - 1 ???
为什么不是 For i = 1 To VBA.Len(X) ???
你的 VB 在用 Mid("abc",0,1) 时不出错吗???
奇怪!!!
为什么不是 For i = 1 To VBA.Len(X) ???
你的 VB 在用 Mid("abc",0,1) 时不出错吗???
奇怪!!!
#8
VBA.Mid(X, i + 1, 1) '我取得是 i+1 的位置!
#9
再来
#10
.
#1
用SubString读出每个字符,或者用Pos直接提取
#2
'strTemp 是你的字符串
for i=1 to len(strTemp)
if mid(strTemp,i,1)>="0" and mid(strTemp,i,1)<="9" then
mid(strTemp,i,1)是数字
end if
next i
for i=1 to len(strTemp)
if mid(strTemp,i,1)>="0" and mid(strTemp,i,1)<="9" then
mid(strTemp,i,1)是数字
end if
next i
#3
有其他的方法吗?
#4
其实上面那位的想法很正确啊,把字符串分割开来,判断ASIIC符就可以知道是不是数字了
#5
Private Sub Command1_Click()
MsgBox GetNumFromString("asda32423sdsa908098sdfsd")
End Sub
Public Function GetNumFromString(X As String) As String
Dim i As Long
For i = 0 To VBA.Len(X) - 1
If VBA.Asc(VBA.Mid(X, i + 1, 1)) >= VBA.Asc("0") And VBA.Asc(VBA.Mid(X, i + 1, 1)) <= VBA.Asc("9") Then
GetNumFromString = GetNumFromString & VBA.Mid(X, i + 1, 1)
End If
Next i
End Function
MsgBox GetNumFromString("asda32423sdsa908098sdfsd")
End Sub
Public Function GetNumFromString(X As String) As String
Dim i As Long
For i = 0 To VBA.Len(X) - 1
If VBA.Asc(VBA.Mid(X, i + 1, 1)) >= VBA.Asc("0") And VBA.Asc(VBA.Mid(X, i + 1, 1)) <= VBA.Asc("9") Then
GetNumFromString = GetNumFromString & VBA.Mid(X, i + 1, 1)
End If
Next i
End Function
#6
哇,我才去找了一下源码就已经有人写好了,快啊
#7
For i = 0 To VBA.Len(X) - 1 ???
为什么不是 For i = 1 To VBA.Len(X) ???
你的 VB 在用 Mid("abc",0,1) 时不出错吗???
奇怪!!!
为什么不是 For i = 1 To VBA.Len(X) ???
你的 VB 在用 Mid("abc",0,1) 时不出错吗???
奇怪!!!
#8
VBA.Mid(X, i + 1, 1) '我取得是 i+1 的位置!
#9
再来
#10
.