vb取出指定字符前面的数字? 比如 “真光路798弄33号201室”,我要取出室前面的号201,怎么操作?

希望用vb现有的字符串操作函数实现,因为我要写在sql语句里面。

第1个回答  2012-09-11
如果字符串是格式固定的"....XXX室",那么可以简单的用
Left(Right("....XXX室",4),3)
直接取得.
如果不固定,要用InStr函数先确定"室"字的位置,然后用Mid函数取其前三个字符,如
s = "....XXX室"
Mid(s, InStr(s, "室")-3, 3)
如果是Access数据库的话,可以直接在SQL语句中使用以上函数.本回答被网友采纳
第2个回答  2012-09-11
Private Sub Command1_Click()
Dim s As String
Dim dd As String '用于保存结果
Dim i As Integer
Dim k As Integer
s = "真光路798弄33号201室"
k = InStr(s, "室") '判断 室 在字符串中的位置
For i = k - 1 To 1 Step -1 '从后往前取出数字
If IsNumeric(Mid(s, i, 1)) Then
dd = Mid(s, i, 1) & dd
Else
Exit For
End If
Next
MsgBox dd
End Sub追问

这样做会使取出的室号是反的吧?

追答

不是返的啊,你可以试试看啊,从后往前取数字,不管有多少数字,取出来的数字都是加到前面去的啊,保证正确

本回答被提问者采纳
第3个回答  2012-09-11
s="798弄33号201室" l=instr(s,"室") do while l>0 i=0 do t=mid(s,l-i,1) ys=0 i=i+1 select case t case "0" to "9" ss=t&ss ys=1 end select loop while ys if ss<>"" then exit do else l=instr(l,s,"室") end if loop msgbox ss 手机打的,应该没有问题

vb取出指定字符前面的数字? 比如 “真光路798弄33号201室”,我要取出...
Mid(s, InStr(s, "室")-3, 3)如果是Access数据库的话,可以直接在SQL语句中使用以上函数.

相似回答
大家正在搜