excel - 从电子邮件格式 firstname.lastname@email.com 中提取名字和姓氏的 VBA 代码
问题描述
我想创建一个 vba 代码,它从电子邮件格式 firstname.lastname@email.com 中提取名字和姓氏
以下公式有效,但我希望它们作为 vba 代码,以便我可以将其用作我已设置的调用模块列表的一部分。
名字 =LEFT(LEFT(A2,FIND(".",A2)-1),FIND("@",A2)-1)
姓 =LEFT(RIGHT(A2,LEN(A2)-FIND(".",A2)),FIND("@",RIGHT(A2,LEN(A2)-FIND(".",A2)))- 1)
名字将从 B2 列开始,姓氏将从 C2 列开始。
谢谢!
解决方案
作为用户定义的函数
Option Explicit
Function GetName(s As String, i As Integer) As String
Dim ar As Variant
ar = Split(Left(s, InStr(1, s, "@") - 1), ".")
If i > 0 Then i = UBound(ar) ' allow for middle names
GetName = ar(i)
End Function
Sub test()
Dim i, ws: Set ws = ActiveSheet
For i = 2 To 10
ws.Range("B" & i).FormulaR1C1 = "=GetName(RC[-1],0)" ' 0=firstname
ws.Range("C" & i).FormulaR1C1 = "=GetName(RC[-2],1)" ' 1=lastname
Next
End Sub
推荐阅读
- python - 如何在 django 电子邮件模块中使用对象(不是字符串)
- perl - 如何避免 PDL 子程序中的输入修改
- google-sheets - 使用 ORDER By 时,Google 表格查询函数返回 0 行
- d3.js - d3.csv 在 Internet Explorer 11 中不起作用
- android - 尽管 Gson 转换器从不返回 null,但在一个为 null 的成员变量上出现崩溃:不可能的情况
- javascript - Bootstrap Fullcalendar Modal 用于单个事件
- c# - Base() 和 This() 在构造函数中。(链式构造函数)
- python - 优化这个递归函数(动态规划)
- javascript - “输入”类型范围内的问题,以及用于设计视频播放器的 JavaScript
- apache-kafka-streams - Kafka 流不会重试反序列化错误