我有一张表,名称列包含字母和数字,我现在要提取字母和数字,把它们分为两列,可小弟找不到合适的方法函数,名称列示例:AFEA 12、AFEJ 12、BB2A 11、N-RTC1-2
要得到的结果:|AFEA|12|
请问有没有这样的函数,提供这样的功能,名称列长度不一样,还是只能手动修改了,自己写个函数还是有困难!!!
要得到的结果:|AFEA|12|
请问有没有这样的函数,提供这样的功能,名称列长度不一样,还是只能手动修改了,自己写个函数还是有困难!!!
它们的全名是:AFEC 11
我看EXCEL 有列的合并方法,就没有它的诉分方法如;AFEC 11=AFEC&11
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