Public Sub SubStr(strIn As String) Dim s As String s = Right$(strIn, 1) If (AscW(s) >= AscW("A") And AscW(s) <= AscW("Z")) Or _ (AscW(s) >= AscW("a") And AscW(s) <= AscW("z")) Then strIn = Left$(strIn, Len(strIn) - 1) End If End SubSub t1() Dim s As String s = "中国邮政A"
SubStr s Debug.Print s
s = "中国财税大楼A" SubStr s Debug.Print s
End Sub
Private Sub Form_Load() Dim S As StringS = "中国政法大厦H" s1 = Right(S, 1)If Asc(UCase(s1)) > 64 And Asc(UCase(s1)) < 91 ThenS = Left(S, Len(S) - 1)MsgBox S End If End Sub
加入需要转换的字符串在A列,处理后还放在A列: Sub yy() Dim i%, r%, ar r = [a65536].End(3).Row ar = [a1].Resize(r, 1) For i = 1 To r Do While Asc(Right(ar(i, 1), 1)) > -252 ar(i, 1) = Left(ar(i, 1), Len(ar(i, 1)) - 1) Loop Next [a1].Resize(r, 1) = ar End Sub
Dim S As String
S = "中国邮政D"
S = Left(S, 4)
MsgBox S
End Sub
Dim S As String
S = "中国邮政D"
S = Replace(S, "D", "")
MsgBox S
End Sub
Dim S As String
S = "中国邮政D"
S = Mid(S, 1, 4)
MsgBox S
End Sub
那个表有很多行数据比如说表里有以下数据:
中国邮政D
中国政法大厦H
中国工行
中国财税大楼A长度不是一定的,要判断后面是否有英文字母,有的话要把最后的英文字母去掉。谢谢!
Dim s As String
s = Right$(strIn, 1)
If (AscW(s) >= AscW("A") And AscW(s) <= AscW("Z")) Or _
(AscW(s) >= AscW("a") And AscW(s) <= AscW("z")) Then
strIn = Left$(strIn, Len(strIn) - 1)
End If
End SubSub t1()
Dim s As String
s = "中国邮政A"
SubStr s
Debug.Print s
s = "中国财税大楼A"
SubStr s
Debug.Print s
End Sub
Dim S As StringS = "中国政法大厦H"
s1 = Right(S, 1)If Asc(UCase(s1)) > 64 And Asc(UCase(s1)) < 91 ThenS = Left(S, Len(S) - 1)MsgBox S
End If
End Sub
表上的数据是在excel表上的,有很五万行左右,如果一行一行输入的话,要很久啊。
Sub yy()
Dim i%, r%, ar
r = [a65536].End(3).Row
ar = [a1].Resize(r, 1)
For i = 1 To r
Do While Asc(Right(ar(i, 1), 1)) > -252
ar(i, 1) = Left(ar(i, 1), Len(ar(i, 1)) - 1)
Loop
Next
[a1].Resize(r, 1) = ar
End Sub