第1个回答 2010-05-25
给你编了一个函数
Function RightShuZi(str) As String
Dim i
Dim L '记录原字符串的长度
Dim n '记录右边数字的个数
Dim A '记录所截取字符的ASCII值
L = Len(str) '获得str的长度
For i = L To 1 Step -1
A = Asc(Mid(str, i, 1))
If A >= 48 And A <= 57 Then '数字的ASCII值在48到57之间
n = n + 1
Else
Exit For
End If
Next
RightShuZi = Right(str, n) '从右边截取
End Function
例如:
Private Sub Command1_Click()
Dim ss
Dim mm
ss = "7890tony65438"
mm = RightShuZi(ss)
Print mm
End Sub
单击Command1后窗体就会打印65438
第2个回答 2010-05-25
'弄了个函数JQSZ(),方便你调用
Option Explicit
Private Function JQSZ(a As String) As String
If a <> "" Then
Dim k As Integer
Do Until k = Len(a)
k = k + 1
If Right(a, k) <> CStr(Val(Right(a, k))) And Mid(a, Len(a) - k + 1, 1) <> "0" Then Exit Do
'判断第k个字符是否位数字,若不是则退出循环,此时k为倒数第一个不是数字的字符位置
Loop
If k = Len(a) Then
JQSZ = Right(a, k)
Else
JQSZ = Right(a, k - 1)
End If
End If
End Function
Private Sub Command1_Click()
Dim a As String '不要忘记定义类行
a = Text1
Text2 = JQSZ(a) '其他地方这样用就行了
End Sub
第3个回答 2010-05-25
很简单:
Right(a, i) '多末端取出字符串用right( a,i),其中a表示字符串,i表示取出的字符数
比如你举的例子:
'1、
Print Right("7890tony65438", 4)
'2、
a = "answer8808"
Print Right(a, 4)
第4个回答 2010-05-25
方法很多,MsgBox StrReverse(Val(StrReverse("7890tony65438"))) 最经典。
Private Sub Form_Load()
Dim str1 As String, str2 As String
Dim i As Integer, k As Integer
str1 = "803>answer8808"
str2 = ""
For i = Len(Trim(str1)) To 1 Step -1
If Asc(Mid(str1, i, 1)) >= 97 And Asc(Mid(str1, i, 1)) <= 122 Then
k = Len(Trim(str1)) - i
str2 = Mid(str1, i + 1, k)
Exit For
End If
Next i
MsgBox str2
End Sub