Excel VBA代码,用于从电子邮件格式firstname中提取名字和姓氏。lastname@email.com
我想创建一个vba代码,从电子邮件格式firstname中提取名字和姓氏。lastname@email.com 下面的公式可以工作,但我希望它们作为vba代码,以便我可以使用它作为我设置的调用模块列表的一部分 名字 =左(左(A2,FIND(“.”,A2)-1),FIND(“@”,A2)-1) 姓 =左(右(A2,LEN(A2)-查找(“.”,A2)),查找(“@”),右(A2,LEN(A2)-查找(“.”,A2))-1) 名字从B2列开始,姓氏从C2列开始 谢谢 试试这个Excel VBA代码,用于从电子邮件格式firstname中提取名字和姓氏。lastname@email.com,excel,vba,Excel,Vba,我想创建一个vba代码,从电子邮件格式firstname中提取名字和姓氏。lastname@email.com 下面的公式可以工作,但我希望它们作为vba代码,以便我可以使用它作为我设置的调用模块列表的一部分 名字 =左(左(A2,FIND(“.”,A2)-1),FIND(“@”,A2)-1) 姓 =左(右(A2,LEN(A2)-查找(“.”,A2)),查找(“@”),右(A2,LEN(A2)-查找(“.”,A2))-1) 名字从B2列开始,姓氏从C2列开始 谢谢 试试这个 Sub Extrac
Sub ExtractNames()
Dim Cell As Range, Names() As String
Application.ScreenUpdating = False
For Each Cell In Range("A1", Range("A" & Rows.Count).End(xlUp))
Names = Split(Split(Cell, "@")(0) & ".", ".")
Cell.Offset(, 1).Resize(, 2) = Names
Next
Columns("B:C").AutoFit
Application.ScreenUpdating = True
End Sub
作为用户定义的函数
选项显式
函数GetName(s为字符串,i为整数)为字符串
Dim-ar作为变体
ar=拆分(左(s,仪表1,s,“@”)-1,“)
如果i>0,则i=UBound(ar)'允许中间名
GetName=ar(i)
端函数
子测试()
尺寸i,ws:Set ws=ActiveSheet
对于i=2到10
ws.Range(“B”和i.FormulaR1C1=“=GetName(RC[-1],0)”“0=firstname
ws.Range(“C”&i.FormulaR1C1=“=GetName(RC[-2],1)””1=lastname
下一个
端接头
firstName=Split(“firstName”)。lastname@email.com“,”)(0)
和lastName=split(split(“firstname”)。lastname@email.com“,”)(1),“@”)(0)
这真是一种享受!非常感谢。当有人回答了你的问题,然后接受它作为答案。很高兴我能帮助@ExcelvbaNovice