如果您想要一个过程来帮助您从字符串中检索电子邮件地址,那么本文适合您。在本文中,我们将创建UDF以从文本中提取电子邮件ID。

问题):我的数据包含太多文本格式的信息。我想要一个VBA代码来帮助我从文本中提取尽可能多的电子邮件ID,以最大程度地减少手动工作。

我们需要执行以下步骤:

单击“开发人员”选项卡。从“代码”组中,选择“ Visual Basic”

img1

===

在标准模块中输入以下代码:

函数ExtractEmailFromText(s作为字符串)作为String Dim AtTheRateSignSymbol作为Long Dim i As Long

Dim TempStr作为字符串

Const CharList As String =“ [A-Za-z0-9 ._-]”

===

AtTheRateSignSymbol = InStr(s,“ @”)

如果AtTheRateSignSymbol = 0,则

ExtractEmailFromText =“”

其他

TempStr =“”

对于i = AtTheRateSignSymbol-1对1步骤-1

如果Mid(s,i,1)像CharList然后

TempStr = Mid(s,i,1)&TempStr

其他

退出

如果

结束

下一个我

如果TempStr =“”,则退出函数

TempStr = TempStr&“ @”

对于i = AtTheRateSignSymbol +1到镜头

如果Mid(s,i,1)像CharList然后

TempStr = TempStr和Mid(s,i,1)

其他

退出

如果

结束

下一个我

如果

结束

如果Right(TempStr,1)=“。然后TempStr = _

左(TempStr,Len(TempStr)-1)

ExtractEmailFromText = TempStr

结束函数

img2

  • 在单元格B2中,公式为

* = ExtractEmailFromText(A2)

我们将得到结果。请参阅下面的快照:

img3

如果一个单元格中有多个电子邮件ID,以上代码将提取第一个电子邮件地址。

这样,我们可以从文本中检索电子邮件。

image 19