如何快速從文本字符串中提取電子郵件地址?
當您從“網站”到Excel工作表中導入一些電子郵件地址時,總是包含不相關的文本,但是現在您只想從文本字符串中提取純電子郵件地址(請參見以下屏幕截圖)。 您怎麼能快速僅從單元格文本中獲取電子郵件地址?
![]() |
![]() |
![]() |
使用公式從文本字符串中提取電子郵件地址
在這裡,我向您介紹一個很長的公式,僅從Excel中的文本中提取電子郵件地址。 請執行以下操作:
1。 在相鄰的單元格B1中,輸入此公式 = TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND(“”,A1&“”,FIND(“ @”,A1))-1),“”,REPT(“”,LEN(A1)))),LEN( A1))).
2。 然後按 Enter 鍵,然後選擇單元格B1,然後將填充手柄拖到要包含此公式的範圍。 並且已從文本字符串中提取了該範圍內的電子郵件地址。 看截圖:
筆記:
1.電子郵件地址後的標點符號也將被提取。
2.如果單元格中不包含電子郵件地址,則公式將顯示錯誤值。
3.如果一個單元格中有多個電子郵件地址,則該公式將僅提取第一個地址。
從文本字符串中提取多個電子郵件地址
Excel的Kutools“ 提取電子郵件地址 可以幫助您快速方便地從文本字符串中提取電子郵件地址。 點擊下載Kutools for Excel!
Excel的Kutools:具有300多個方便的Excel加載項,可以在30天內免費試用,沒有任何限制。 立即下載並免費試用!
使用用戶定義的功能從文本字符串中提取電子郵件地址
除上述公式外,用戶定義函數還可以幫助您從文本字符串中獲取電子郵件地址。
1。 按住 ALT + F11 鍵,然後打開 Microsoft Visual Basic for Applications 窗口。
2。 點擊 插入 > 模塊,然後將以下宏粘貼到“模塊”窗口中。
Function ExtractEmailFun(extractStr As String) As String
'Update by extendoffice
Dim CharList As String
On Error Resume Next
CheckStr = "[A-Za-z0-9._-]"
OutStr = ""
Index = 1
Do While True
Index1 = VBA.InStr(Index, extractStr, "@")
getStr = ""
If Index1 > 0 Then
For p = Index1 - 1 To 1 Step -1
If Mid(extractStr, p, 1) Like CheckStr Then
getStr = Mid(extractStr, p, 1) & getStr
Else
Exit For
End If
Next
getStr = getStr & "@"
For p = Index1 + 1 To Len(extractStr)
If Mid(extractStr, p, 1) Like CheckStr Then
getStr = getStr & Mid(extractStr, p, 1)
Else
Exit For
End If
Next
Index = Index1 + 1
If OutStr = "" Then
OutStr = getStr
Else
OutStr = OutStr & Chr(10) & getStr
End If
Else
Exit Do
End If
Loop
ExtractEmailFun = OutStr
End Function
3。 然後保存代碼並輸入公式 = ExtractEmailFun(A1) 在相鄰的空白單元格中,請參見屏幕截圖:
4。 然後按 Enter 鍵,選擇單元格B1,然後將填充手柄拖到所需公式的範圍內。 並且所有電子郵件地址均已從單元格文本中提取。 看截圖:
筆記:
1.如果單元格沒有電子郵件地址,它將顯示空白單元格。
2.如果一個單元中有多個電子郵件地址,則將提取所有電子郵件。
使用VBA代碼從文本字符串中提取電子郵件地址
如果您認為上述公式對您來說很麻煩,則以下VBA代碼可以幫助您一次提取電子郵件地址。
1。 按住 ALT + F11 鍵,它會打開一個 Microsoft Visual Basic for Applications 窗口。
2。 點擊 插入 > 模塊,然後將以下宏粘貼到 模塊窗口.
VBA:從文本字符串中提取電子郵件地址
Sub ExtractEmail()
'Update 20130829
Dim WorkRng As Range
Dim arr As Variant
Dim CharList As String
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
arr = WorkRng.Value
CheckStr = "[A-Za-z0-9._-]"
For i = 1 To UBound(arr, 1)
For j = 1 To UBound(arr, 2)
extractStr = arr(i, j)
outStr = ""
Index = 1
Do While True
Index1 = VBA.InStr(Index, extractStr, "@")
getStr = ""
If Index1 > 0 Then
For p = Index1 - 1 To 1 Step -1
If Mid(extractStr, p, 1) Like CheckStr Then
getStr = Mid(extractStr, p, 1) & getStr
Else
Exit For
End If
Next
getStr = getStr & "@"
For p = Index1 + 1 To Len(extractStr)
If Mid(extractStr, p, 1) Like CheckStr Then
getStr = getStr & Mid(extractStr, p, 1)
Else
Exit For
End If
Next
Index = Index1 + 1
If outStr = "" Then
outStr = getStr
Else
outStr = outStr & Chr(10) & getStr
End If
Else
Exit Do
End If
Loop
arr(i, j) = outStr
Next
Next
WorkRng.Value = arr
End Sub
3。 然後按 F5 鍵來運行此代碼,您應該在彈出的對話框中選擇要使用VBA的範圍,請參見屏幕截圖:
4。 然後點擊 OK,並且已從所選文本字符串中提取電子郵件地址。 查看屏幕截圖:
![]() |
![]() |
![]() |
筆記:
1.如果單元格沒有電子郵件地址,它將顯示空白單元格。
2.如果一個單元中有多個電子郵件地址,則將提取所有電子郵件。
3.提取的電子郵件將覆蓋原始數據,因此,如果需要,最好先備份數據。
一鍵使用Kutools for Excel從文本字符串中提取電子郵件地址
對於我們的Excel初學者來說,以上方法看起來有些複雜,在這裡,我可以向您推荐一種快速簡便的工具- Excel的Kutools,其 提取電子郵件地址 實用程序,您可以輕鬆地從文本字符串中提取電子郵件地址。
Excel的Kutools : 帶有300多個便捷的Excel加載項,可以在30天內免費試用. |
如果你已經安裝 Excel的Kutools,請執行以下操作:
1。 選擇包含文本字符串的單元格。
2。 點擊 庫工具 > 文本 > 提取電子郵件地址,請參見屏幕截圖:
3。 和 提取電子郵件地址 對話框將彈出,選擇要放置結果的單元格,請參見屏幕截圖:
4。 然後點擊 OK 按鈕,已從文本字符串中提取所有電子郵件地址,請參見屏幕截圖:
演示:使用Kutools for Excel從文本字符串中提取電子郵件地址
相關文章:
最佳辦公效率工具
Kutools for Excel 解決了你的大部分問題,並將你的生產力提高了 80%
- 重用: 快速插入 複雜的公式,圖表 以及您以前使用過的任何東西; 加密單元 帶密碼 創建郵件列表 並發送電子郵件...
- 超級公式欄 (輕鬆編輯多行文本和公式); 閱讀版式 (輕鬆讀取和編輯大量單元格); 粘貼到過濾範圍...
- 合併單元格/行/列 不會丟失數據; 拆分單元格內容; 合併重複的行/列...防止細胞重複; 比較範圍...
- 選擇重複或唯一 行; 選擇空白行 (所有單元格都是空的); 超級查找和模糊查找 在許多工作簿中; 隨機選擇...
- 確切的副本 多個單元格,無需更改公式參考; 自動創建參考 到多張紙; 插入項目符號,複選框等...
- 提取文字,添加文本,按位置刪除, 刪除空間; 創建和打印分頁小計; 在單元格內容和註釋之間轉換...
- 超級濾鏡 (將過濾方案保存並應用於其他工作表); 高級排序 按月/週/日,頻率及更多; 特殊過濾器 用粗體,斜體...
- 結合工作簿和工作表; 根據關鍵列合併表; 將數據分割成多個工作表; 批量轉換xls,xlsx和PDF...
- 超過 300 項強大的功能. 支持 Office / Excel 2007-2021 和 365。支持所有語言。 在您的企業或組織中輕鬆部署。 完整功能 30 天免費試用。 60 天退款保證。

Office選項卡為Office帶來了選項卡式界面,使您的工作更加輕鬆
- 在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。
- 在同一窗口的新選項卡中而不是在新窗口中打開並創建多個文檔。
- 將您的工作效率提高 50%,每天為您減少數百次鼠標點擊!






















