KutoolsforOffice — 一套方案,五大工具。事半功倍。三月特賣:20% 折扣

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

作者修改日期

在 Excel 中管理資料時,經常需要清理文字,特別是在處理可能包含多餘或不一致字元的清單時。例如,您可能有一欄姓名或項目,其中某些儲存格含有非英文字元(如重音符號、特殊符號或外語字符),而您需要將這些字元移除,以確保資料一致性或順利進行後續處理。

手動移除這類字元不僅耗時,還容易出錯,尤其在處理大型資料集時更是如此。為有效解決此問題,Excel 提供了多種方法:您可以透過 VBA 指令碼自動刪除包含任何非英文字元的整列資料,或直接清理資料內容,在保留資料結構完整的前提下,僅移除文字中的非英文字元。以下將介紹兩種實用的解決方案,協助您輕鬆應對這些情境。

使用 VBA 移除包含非英文字元的列

使用 Kutools for Excel 從字串中移除非英文字元

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

使用 VBA 從儲存格文字中移除非英文字元


使用 VBA 移除包含非英文字元的列

如果您需要完全移除整行中包含任何非英文字元的資料列,使用 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

在建立的模組中貼上程式碼的螢幕截圖

3. 按下 F5 或按一下執行按鈕以執行程式碼。此時會出現一個對話方塊,提示您「選取單一欄位」。請在工作表中使用滑鼠選取欲處理的欄位,然後按一下確定
VBA 指令碼中選取用於移除非英文字符之欄位的螢幕截圖

4. 在後續出現的對話方塊中,按一下確定以確認您的選擇。指令碼將逐一檢查所選欄位中的每個儲存格;若偵測到任一字元不屬於大寫或小寫英文字母(A-Z),則會刪除包含該儲存格的整行。完成後,系統將立即顯示提示,告知您處理已完成。
確認對話框的螢幕截圖

顯示包含非英文字符之 Excel 欄位的螢幕截圖向右箭頭移除非英文字符後 Excel 欄位的螢幕截圖

注意:此 VBA 指令碼一次僅適用於單一欄位的選取。建議在執行程式碼前先儲存活頁簿,因為刪除的列將無法復原。若您的資料量龐大或包含特殊格式,強烈建議事先備份,以免遺失重要內容!

疑難排解提示:若出現錯誤訊息或看似毫無反應,請確認您已選取有效的單一欄位(而非跨多欄的範圍)。此指令碼需啟用 VBA 才能執行;若您的環境中 VBA 編輯器遭鎖定或受限,請考慮啟用相關權限,或改用其他方法。

適用性:此方法最適合您希望確保資料僅包含純英文字母項目,且無需保留含有任何特殊符號或外語字元之列的情境。若您希望保留資料,僅移除非英文字元(而非刪除整列),請考慮使用下方的 Kutools 解決方案或其他方法。


使用 Kutools for Excel 從字串中移除非英文字元

若您希望透過移除儲存格內的非英文字元來清理文字—同時保留所有資料列不被刪除—刪除特定字元功能於 Kutools for Excel 提供快速又實用的解決方案!此方法特別適合需要維持完整資料結構,卻想清除字串中的特殊符號、重音符號或外語字元,僅保留標準英文字母的情境。

例如,此方法非常適合用於標準化姓名、產品代碼,或任何可能因輸入錯誤或從外部來源複製而混入各種符號與非英文字元的字母數字項目。相較於手動清理,不僅能降低遺漏不必要字元的風險,還能大幅提升處理速度。

清理前包含非英文字符之 Excel 欄位的螢幕截圖向右箭頭使用 Kutools 移除非英文字符後 Excel 欄位的螢幕截圖
Kutools for Excel 提供超過 300 項進階功能,簡化複雜作業,提升創造力與效率。整合 AI 功能,Kutools 能精準自動化各項任務,讓資料管理輕鬆無負擔。Kutools for Excel 的詳細資訊……         免費試用……

1. 選取包含欲清理文字字串的範圍,接著前往 Excel 功能區中的 Kutools 選項卡,點擊文字,並從下拉選單中選擇刪除特定字元。操作畫面請參閱下方螢幕截圖:
Excel 中文字功能表下的 Kutools「移除字符」選項螢幕截圖

2. 在出現的刪除特定字符對話方塊中,勾選非字母選項(此選項針對非字母字元,包括數字、標點符號及特殊或非英文字元)。預覽窗格會自動更新,即時呈現移除非英文字元與特殊符號後的文字樣貌。
「移除字符」對話框顯示移除非英文字符選項的螢幕截圖

3. 確認預覽結果符合您的期望後,按一下確定,所有非英文字元(即非標準英文字母的內容)將立即從選取區域中移除,其餘資料則保持不變。
使用 Kutools 移除非英文字符後 Excel 欄位的螢幕截圖

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 助手:基於以下內容徹底革新數據分析:智慧執行     產生程式碼  建立自訂公式    分析資料並產生圖表  呼叫增強函數……
熱門功能尋找、醒目提示或標記重複值     刪除空白行     合併列或儲存格而不遺失資料     不使用公式的四捨五入……
高級 LOOKUP多重條件 VLookup    多重數值 VLookup     跨多個工作表 VLookup      模糊查找……
高級下拉列表快速建立下拉式清單     相依式下拉式清單     多選下拉式清單……
欄位管理員新增指定數量的欄位移動欄位切換隱藏欄位的可見狀態比較範圍與欄位……
精選功能網格聚焦     設計視圖   增強編輯欄    工作簿與工作表管理員     資源庫(自動文字)  日期提取     合併工作表    加密/解密儲存格    依清單傳送電子郵件     超級篩選      特殊篩選(篩選粗體儲存格/斜體/刪除線……) ......
頂尖 15 工具組12 文字工具添加文本刪除特定字符,……)   50+ 圖表 類型甘特圖,……)   40+ 實用公式基於生日計算年齡,……)   19 插入工具插入二維碼從路徑插入圖片,……)   12 轉換工具金額轉大寫匯率轉換,……)   7 合併和拆分工具高級合併行分割儲存格,……)……以及更多
在您的慣用語言中使用 Kutools—支援英文、西班牙文、德文、法文、中文及另外 40+ 種語言!

運用 Kutools for Excel 強化您的 Excel 技能,體驗前所未有的高效能!Kutools for Excel 提供超過 300 項進階功能,大幅提升生產力並節省寶貴時間。立即點擊,取得您最需要的功能……


Office Tab 為 Office 帶來分頁式介面,讓您的工作更輕鬆自在!

  • 在 Word、Excel、PowerPoint 中啟用分頁式編輯與閱讀功能,以及 Access、Visio 與 Project。
  • 在同視窗的新分頁中開啟並建立多份文件,而非另開新視窗。
  • 每天為您提升 50% 的工作效率,並省下數百次滑鼠點擊!

所有 Kutools 增益集,一個安裝程式

Kutools for Office 套件整合了 Excel、Word、Outlook 與 PowerPoint 的增益集,以及 Office Tab Pro,非常適合需要跨多個 Office 應用程式協作的團隊使用!

ExcelWordOutlookTabsPowerPoint
  • 全能套件— 包含 Excel、Word、Outlook 與 PowerPoint 增益集,以及 Office Tab Pro
  • 一個安裝程式,一個授權— 數分鐘內即可完成設定(支援 MSI)
  • 協同運作更出色— 在多個 Office 應用程式間實現流暢的生產力體驗
  • 30 天完整功能試用— 無需註冊,無需信用卡
  • 超值之選— 比單獨購買各增益集更省費用