我用了一很笨的方法:就是得到名称全名列的字符串,用一个函数来判断是否是字符:
Function is_name(str As Variant) As String
If Not IsNumeric(Mid(str, 1, 1)) Then
is_name = True
Else
is_name = False
End If
End Function
------------------------------------
Private Sub CommandButton1_Click()
Dim i, j, max, num As Integer
Dim str1 As String
Set tb2 = Worksheets(2).Range("a1:a1000")
max = Application.WorksheetFunction.max(tb2)
For i = 1 To max
str1 = Trim(Worksheets(2).Cells(i + 1, "D").Value)
num = Len(str1)
str2 = ""
str3 = ""
For j = 1 To num
zim = Mid(str1, j, 1) '//È¡µÃ×Ö·û
flag = is_name(zim) '//ÅжÏÊDz»ÊÇÊý×Ö
If (flag = True) Or (j = 3) Then '//j=3ÊÇÒª±£ÁôµÚÈý¸öÊý×Ö£¬ÒòΪËüÊÇÃû³ÆµÄ×é³É²¿·Ö
str2 = str2 + zim '×Öĸ´®
' MsgBox "×Öĸ£º" & str2
ElseIf (flag = False) Then
str3 = str3 + zim 'Êý×Ö´®
' MsgBox "Êý×Ö£º" & str3
End If
'//Êä³ö×Ö´®
Worksheets(2).Cells(i + 1, "E").Value = Trim(UCase(str2))
Worksheets(2).Cells(i + 1, "F").Value = Trim(str3)
Next j
Next i
End Sub