字符串提取问题请vba高手指教

ant88 2006-10-20 02:34:42
我有一张表,名称列包含字母和数字,我现在要提取字母和数字,把它们分为两列,可小弟找不到合适的方法函数,名称列示例:AFEA 12、AFEJ 12、BB2A 11、N-RTC1-2
要得到的结果:|AFEA|12|  
请问有没有这样的函数,提供这样的功能,名称列长度不一样,还是只能手动修改了,自己写个函数还是有困难!!!
...全文
219 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ant88 2006-11-01
  • 打赏
  • 举报
回复
我用了一很笨的方法:就是得到名称全名列的字符串,用一个函数来判断是否是字符:
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
ant88 2006-11-01
  • 打赏
  • 举报
回复
就是一列的名称为:AFEC第二列为数字:11
它们的全名是:AFEC 11
我看EXCEL 有列的合并方法,就没有它的诉分方法如;AFEC 11=AFEC&11
吾非大神 2006-10-20
  • 打赏
  • 举报
回复
关注
cy_nwau 2006-10-20
  • 打赏
  • 举报
回复
要求没有说清楚!
ant88 2006-10-20
  • 打赏
  • 举报
回复
说详细点好吗?

junki 2006-10-20
  • 打赏
  • 举报
回复
用一个循环结构,判断它的ASC值.

2,462

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧