Skip to main content

Kutools for Office — 一套工具,五種功能。完成更多工作。

如何刪除Excel欄位中的非英文字元?

Author Sun Last modified

在 Excel 中管理數據時,通常需要清理文字,特別是在處理可能包含不需要或不一致字元的清單時。例如,您可能會有一列名稱或條目,其中某些儲存格包含非英文字元——例如帶有重音符號的字母、特殊符號或外語字符——這些都需要刪除,以滿足數據一致性要求或進行進一步處理。

手動刪除這些字元可能會非常耗時且容易出錯,尤其是在處理大型數據集時。為了有效地解決這個問題,Excel 提供了幾種方法:您可以使用 VBA 腳本自動刪除包含任何非英文字元的行,或者通過刪除文字中的非英文字元來就地清理數據,同時保持數據結構完整。在此,我們介紹兩種實用的解決方案,幫助您處理這些情況。

使用 VBA 刪除包含非英文字元的行

使用 Kutools for Excel 刪除非英文字元

使用 Excel 公式刪除非英文字元

使用 VBA 刪除儲存格文字中的非英文字元


使用 VBA 刪除包含非英文字元的行

如果您需要從 Excel 的特定欄位中完全刪除包含任何非英文字元的整行,使用 VBA 腳本可以自動完成此過程。這種方法特別適合於當您希望確保只有包含標準英文字母的儲存格保留,而任何包含外語字元或特殊符號的儲存格將導致整行被刪除的情況。此方法對於準備乾淨的數據集以導入只接受標準英文字元的系統特別有用。

但是,請注意,該方法一次僅針對一列;如果您希望在其他地方應用,則需要為每列分別運行腳本。此外,一旦執行完畢,刪除的行將無法恢復,除非您已創建備份或可以使用撤銷功能。

以下是逐步指南:

1. 打開您的 Excel 工作簿,激活包含要處理欄位的工作表,然後按下 Alt + F11 以打開 Microsoft Visual Basic for Applications 窗口。這讓您可以訪問內置於 Excel 中的 VBA 編程環境。

2. 在 VBA 編輯器中,點擊 插入 > 模組 以創建一個新模組,然後複製並將以下 VBA 程式碼粘貼到出現的程式碼窗口中:

VBA:刪除非英文字元

Sub RemoveNonEnglish()
'UpdatebyExtendoffice20171204
    Dim xRg As Range
    Dim xCell As Range
    Dim I As Long
    Dim J As Long
    Dim xRows As Long
    Dim xAsc As Long
    On Error Resume Next
    Set xRg = Application.InputBox("Select single column:", "KuTools For Excel", Selection.Address, , , , , 8)
    If xRg Is Nothing Then Exit Sub
    Application.ScreenUpdating = False
    xRows = xRg.Rows.Count
    Set xRg = xRg(1)
    For I = 1 To xRows
        Set xCell = xRg.Offset(I - 1)
        If xCell.Value <> "" Then
            For J = 1 To Len(xCell.Value)
                xAsc = Asc(UCase(Mid(xCell.Value, J, 1)))
                If xAsc < 65 Or xAsc > 90 Then
                    xCell.EntireRow.Delete
                    I = I - 1
                    Exit For
                End If
            Next
        End If
    Next
    Application.ScreenUpdating = True
    MsgBox "Completed...", vbInformation
End Sub

A screenshot of the pasted code in the created module

3. 按下 F5 或點擊 執行 按鈕以執行代碼。將會出現一個對話框,提示您“選擇單列”。使用滑鼠選擇您工作表中要處理的列,然後點擊 確定.
A screenshot showing selection of a column in the VBA script for removing non-English characters

4. 點擊確認選擇 確定 在隨後的對話框中。腳本將審查所選列中的每個儲存格。如果檢測到任何不是大寫或小寫英文字母(A-Z)的字元,它將刪除包含該儲存格的整行。完成後,您將看到一個提示,告知您該過程已完成。
A screenshot of the confirmation dialog

A screenshot showing an Excel column with non-English characters Arrow right A screenshot showing an Excel column after non-English characters have been removed

注意:此 VBA 腳本一次只能作用於單列選擇。建議在運行代碼之前保存您的工作簿,因為刪除的行在操作後無法恢復。如果您的數據量很大或包含特殊格式,強烈建議事先創建備份。

故障排除提示:如果看到錯誤消息或似乎沒有發生任何事情,請檢查是否選擇了有效的列並且只選擇了一列(而不是跨越多列的範圍)。必須啟用 VBA 才能運行此腳本。如果 VBA 編輯器在您的環境中被鎖定或限制,請考慮啟用權限或使用替代方法。

適用性:如果您希望確保您的數據僅包括純粹英文字母的條目,並且不需要保留包含任何特殊或外語字符的行,那麼這種方法是最好的選擇。然而,如果您的目的是保留數據,只是簡單地刪除非英文字元——而不是刪除整行——請考慮使用 Kutools 解決方案或其他下面的方法。


使用 Kutools for Excel 刪除字符串中的非英文字元

如果您想通過刪除儲存格內部的非英文字元來清理文字——而不刪除任何行——Kutools for Excel中的「刪除字符」功能提供了一個快速且實用的解決方案。這適用於您想保留整體數據結構但刪除字符串內部任何特殊、帶重音符號或外語字符的情況,只留下常規的英文字母可見。

例如,這種方法適用於標準化名稱、產品代碼或任何可能輸入錯誤或從外部來源複製的字母數字條目,導致存在各種符號或非英文字元的情況。與手動清理相比,這樣可以減少遺漏不需要的字符的風險並加快該過程。

A screenshot of an Excel column containing non-English characters before cleanup Arrow right A screenshot of the Excel column after using Kutools to remove non-English characters
Kutools for Excel 提供超過 300 種進階功能,簡化複雜任務,提升創造力與效率。 結合 AI 能力,Kutools 能夠精準自動化任務,讓數據管理變得輕而易舉。Kutools for Excel 的詳細資訊...免費試用...

1. 選擇包含要清理的文字字符串的範圍,然後轉到 Kutools 標籤,在 Excel 功能區中點擊 文字,然後選擇 刪除字符 從下拉菜單中。請參閱下面的截圖作為參考:
A screenshot of Kutools Remove Characters option under Text menu in Excel

2. 在 刪除字符 出現的對話框中,勾選 非字母字符 (針對非字母字符,包括數字、標點和特殊或非英文字元)。 預覽 窗格自動更新,向您展示刪除非英文字元和特殊字符後文本的樣子。
A screenshot of Remove Characters dialog showing options for removing non-English characters

3. 確認預覽符合您的期望後,點擊 確定。所有非英文字元(即,任何不是標準英文字母的字符)都會立即從所選範圍中刪除,而其餘數據保持不變。
A screenshot of the Excel column after using Kutools to remove non-English characters

Kutools for Excel - 超過 300 種必備工具,讓 Excel 功能更強大。永久免費享受 AI 功能!立即獲取

如果您經常需要在 Excel 中清理文字,Kutools 方法提供了用戶友好的視覺界面,並能以幾次點擊高效處理大量數據範圍。它還提供撤銷支持,因此如果結果不符合您的需求,您可以快速恢復更改。

提示和預防措施:「非字母字符」選項還將刪除文本中的任何數字或特殊標點符號。如果需要保留數字或其他特定字符,請在對話框中嘗試不同的複選框,直到達到您想要的結果。始終查看預覽窗格以確認效果,然後再按確定。

比較:此方法比 VBA 行刪除更靈活,因為它只刪除不需要的字符,而不是整行,因此如果存在丟失與每行相關的重要信息的風險,這種方法破壞性較小且更安全。


使用 Excel 公式刪除非英文字元

如果您無法使用 Kutools 或者不想使用 VBA,您也可以使用 Excel 公式來刪除非英文字元(即,任何不是英文字母的字符)從儲存格中的文本中。這種方法適用於您需要無損壞、基於公式的解決方案的情況,該解決方案可以應用於每一行並輕鬆複製到其他儲存格。

1. 在輸出列的第一個儲存格中輸入以下陣列公式(例如,如果您的原始數據在 A 列,則為 B1):

=TEXTJOIN("",TRUE,IF((CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))>=65)*(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<=90)+(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))>=97)*(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<=122),MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),""))

此公式檢查 A1 儲存格中的每個字符,只有當它是大寫(A-Z)或小寫(a-z)英文字母時才保留,並將結果連接成一個清理過的字符串。

2. 輸入此公式後,按下 Ctrl+Shift+Enter(對於 Office 365 之前的 Excel 版本;在 Office 365 及之後的版本中,您可以直接按下 Enter)。通過拖動填充柄或雙擊儲存格右下角的填充柄,將公式複製到所有相關行中。

參數解釋:此公式利用 MID、CODE(返回 ASCII 碼值)、INDIRECT 和 ROW 函數來處理目標儲存格中的每個字符。只保留字母 a-z 或 A-Z。

預防措施:此方法不會改變原始數據;輸出是目標列中的公式結果。如果您需要固定的靜態值,請複製結果並使用粘貼值來覆蓋公式。

局限性:文本長度影響公式性能。此方法可能無法正確處理多字符 Unicode 圖形,因此一些視覺上的非英文字元可能仍然存在,如果它們由複合 Unicode 序列表示。


使用 VBA 刪除儲存格文字中的非英文字元

如果您想刪除儲存格文字內部的非英文字元(而不刪除整行),您也可以使用 VBA 進行更多自定義的自動化。這對於必須經常運行的數據清理任務以及無法使用外掛的情況非常實用。

1. 打開 Excel,然後按下 Alt + F11 啟動 Microsoft Visual Basic for Applications 編輯器。轉到 插入 > 模組 並將以下代碼粘貼到模組窗口中:

Sub RemoveNonEnglishCharactersFromCells()
    ' Remove non-English characters, keep only a-z, A-Z
    Dim rng As Range
    Dim cell As Range
    Dim i As Long
    Dim ch As String
    Dim output As String
    
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    
    Set rng = Application.Selection
    Set rng = Application.InputBox("Select range to clean (cells will be altered):", xTitleId, rng.Address, Type:=8)
    
    If rng Is Nothing Then Exit Sub
    
    Application.ScreenUpdating = False
    
    For Each cell In rng
        output = ""
        For i = 1 To Len(cell.Value)
            ch = Mid(cell.Value, i, 1)
            If (Asc(ch) >= 65 And Asc(ch) <= 90) Or (Asc(ch) >= 97 And Asc(ch) <= 122) Then
                output = output & ch
            End If
        Next i
        cell.Value = output
    Next cell
    
    Application.ScreenUpdating = True
    
    MsgBox "Cleanup complete.", vbInformation
End Sub

2. 返回 Excel,選擇您要清理的範圍,返回 VBA 編輯器並按下 F5 或點擊 執行 按鈕來運行代碼。根據提示選擇要處理的範圍並確認。

效果:此代碼處理每個選定的儲存格,刪除任何不是標準英文字母的字符,並用清理後的結果更新儲存格。原始數據將被覆蓋,所以備份您的工作表或在副本上工作是明智的。

Kutools for Excel - 超過 300 種必備工具,讓 Excel 功能更強大。永久免費享受 AI 功能!立即獲取

演示:使用 Kutools for Excel 刪除字符串中的非英文字元

 
Kutools for Excel:超過 300 種實用工具任您使用!永久免費享受AI功能!立即下載!

最佳 Office 生產力工具

🤖 Kutools AI 助手:以智能執行為基礎,革新數據分析 生成程式碼 創建自訂公式 分析數據並生成圖表 調用 Kutools 增強函數
熱門功能查找、選取項目的背景色或標記重複值刪除空行合併列或單元格且不遺失數據四捨五入(免公式)...
高級 LOOKUP多條件 VLookup多值 VLookup多表查找模糊查找...
高級下拉列表快速創建下拉列表 依賴型下拉列表 多選下拉列表...
列管理器添加指定數量的列移動列切換隱藏列的顯示狀態比較區域及列...
精選功能網格聚焦 設計檢視 增強編輯欄 工作簿及工作表管理器 資源庫(快捷文本) 日期提取器 合併資料 加密/解密儲存格 按列表發送電子郵件 超級篩選 特殊篩選(篩選粗體/傾斜/刪除線...)...
15 大工具集12 項文本工具添加文本刪除特定字符…)50+ 儀表 類型甘特圖等)40+ 實用 公式基於生日計算年齡等)19 項插入工具插入QR码根據路徑插入圖片等)12 項轉換工具金額轉大寫匯率轉換等)7 項合併與分割工具高級合併行分割儲存格等)...及更多
使用 Kutools,語言任你選 — 支援英語、西班牙語、德語、法語、中文及超過40 種語言!

運用 Kutools for Excel,全面提升您的 Excel 技能,體驗前所未有的高效。 Kutools for Excel 提供超過300 項進階功能,讓您提升工作效率、節省時間。 點此尋找您最需要的功能...


Office Tab 為 Office 帶來分頁介面,讓您的工作更加輕鬆簡單

  • 在 Word、Excel、PowerPoint 中啟用分頁編輯與閱讀
  • 在同一視窗的新分頁中打開與創建多份文件,而非開啟新視窗。
  • 提升您的生產力50%,每日可幫您減少數百次鼠標點擊!

所有 Kutools 外掛,一次安裝

Kutools for Office 套裝整合了 Excel、Word、Outlook 和 PowerPoint 的外掛,外加 Office Tab Pro,非常適合需要跨 Office 應用程式協同作業的團隊。

Excel Word Outlook Tabs PowerPoint
  • 全合一套裝 — Excel、Word、Outlook及 PowerPoint 外掛 + Office Tab Pro
  • 一鍵安裝,一份授權 — 幾分鐘完成設置(支援 MSI)
  • 協同運作更順暢 — Office 應用間無縫提升生產力
  • 30 天全功能試用 — 無需註冊、無需信用卡
  • 最超值 — 一次購買,節省單獨外掛費用