How to remove non-English characters in Excel column?
Managing data in Excel often requires you to clean up text, especially when working with lists that might include unwanted or inconsistent characters. For example, you may have a column of names or entries where some cells contain non-English characters—such as accented letters, special symbols, or foreign scripts—which you need to remove to meet data consistency requirements or for further processing.
Removing such characters manually can be very time-consuming and prone to errors, especially when handling large datasets. To efficiently solve this, Excel provides several approaches: you can use VBA scripts to automatically delete rows containing any non-English characters, or you can clean up the data in-place by removing non-English characters from the text while keeping the data structure intact. Here, we introduce two practical solutions to help you handle these scenarios.
Remove rows containing non-English characters by VBA
Remove non-English characters from strings using Kutools for Excel
Remove non-English characters using Excel formula
Remove non-English characters from cell text using VBA
Remove rows containing non-English characters by VBA
If you need to completely remove entire rows that contain any non-English characters from a particular column in Excel, using a VBA script can automate this process. This approach is especially suitable when you want to ensure that only cells with standard English alphabetical characters remain, and any cell with foreign characters or special symbols will result in the whole row being deleted. This method is particularly useful for preparing clean datasets for import into systems that only accept standard English characters.
However, please note the limitation that this method targets one column at a time; you need to run the script separately for each column if you wish to apply it elsewhere. Also, once executed, deleted rows cannot be recovered unless you have created a backup or can use the Undo feature.
Here is a step-by-step guide:
1. Open your Excel workbook, activate the worksheet containing the column you want to process, and press Alt + F11 to open the Microsoft Visual Basic for Applications window. This lets you access the VBA programming environment built into Excel.
2. In the VBA editor, click Insert > Module to create a new module, then copy and paste the following VBA code into the code window that appears:
VBA: Remove non-English characters
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. Press F5 or click the Run button to execute the code. A dialog box will appear asking you to "Select single column". Use your mouse to select the column you want to process in your worksheet, then click OK.
4. Confirm your selection by clicking OK in the subsequent dialog boxes. The script will then review each cell in the selected column. If it detects any character that is not an uppercase or lowercase English letter (A-Z), it will delete the entire row containing that cell. After completion, you will see a prompt informing you that the process is finished.
![]() | ![]() | ![]() |
Note: This VBA script only works for a single column selection at a time. It is recommended to save your workbook before running the code, as deleted rows cannot be restored after the operation. If your data is large or contains special formatting, creating a backup beforehand is strongly suggested.
Troubleshooting tips: If you see an error message or nothing appears to happen, check that you selected a valid column and only one column (not a range spanning multiple columns). VBA must be enabled for this script to run. If the VBA editor is locked or restricted in your environment, consider enabling permissions or using an alternative method.
Applicability: This approach is best if you want to ensure that your data includes only entries with purely English letters, and you do not need to preserve rows containing any special or foreign language characters. However, if your purpose is to retain the data while simply removing non-English characters—but not deleting whole rows—consider using the Kutools solution or other methods below.
Remove non-English characters from strings using Kutools for Excel
If you want to clean up text by removing non-English characters from within the cells—without deleting any rows—the Remove Characters feature in Kutools for Excel offers a quick and practical solution. This is suitable for scenarios where you want to keep the overall data structure but remove any special, accented, or foreign language characters inside strings, leaving only regular English letters visible.
For example, this approach is ideal for standardizing names, product codes, or any alphanumeric entries that may have been entered incorrectly or copied from external sources, resulting in the presence of various symbols or non-English characters. Compared to manual cleaning, this reduces the risk of missing unwanted characters and speeds up the process.
![]() | ![]() | ![]() |
1. Select the range containing the text strings that you wish to clean, then go to the Kutools tab in the Excel ribbon, click Text, and choose Remove Characters from the dropdown menu. See the screenshot below for reference:
2. In the Remove Characters dialog box that appears, check the option for Non-alpha (which targets non-alphabetic characters, including digits, punctuation, and special or non-English symbols). The Preview pane updates automatically to show you how the text will look after non-English and special characters are removed.
3. After confirming that the preview meets your expectations, click OK. All non-English characters (i.e., anything that is not a standard English letter) are instantly removed from the selected range, while the rest of your data remains untouched.
Kutools for Excel - Supercharge Excel with over 300 essential tools. Enjoy permanently free AI features! Get It Now
If you frequently need to clean text in Excel, the Kutools approach provides a user-friendly, visual interface and efficiently processes large data ranges in just a few clicks. It also offers undo support, so you can quickly revert changes if the results do not meet your needs.
Tips and precautions: The 'Non-alpha' option will also remove any numbers or special punctuation marks in the text. If you need to retain numbers or other specific characters, experiment with different checkboxes in the dialog until you achieve your desired result. Always review the preview pane to confirm the effect before pressing OK.
Comparison: This method is more flexible than VBA row deletion in that it only removes unwanted characters, not the entire row, thus is less destructive and safer if there is any risk of losing important information tied to each row.
Remove non-English characters using Excel formula
If you do not have access to Kutools or prefer not to use VBA, you can also use an Excel formula to remove non-English characters (i.e., anything that is not an English alphabet letter) from text in a cell. This approach is suitable for situations where you want a non-destructive, formula-based solution that can be applied to each row and copied to other cells easily.
1. Enter the following array formula in the first cell of your output column (e.g., B1 if your original data is in column A):
=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),""))
This formula checks each character in cell A1, keeps it only if it is an uppercase (A-Z) or lowercase (a-z) English letter, and joins the result into a cleaned string.
2. After typing this formula, press Ctrl+Shift+Enter (for Excel versions earlier than Office 365; in Office 365 and later, you can just press Enter). Copy the formula down for all relevant rows by dragging the fill handle or double-clicking it in the lower-right corner of the cell.
Parameter explanation: This formula utilizes MID, CODE (which returns the ASCII code), INDIRECT, and ROW functions to process every character in the target cell. Only letters a-z or A-Z are preserved.
Precautions: This approach does not alter the original data; outputs are formula results in the target column. If you need fixed, static values, copy the results and use Paste Values to overwrite the formulas.
Limitations: Text length affects formula performance. This method may not properly handle multi-character Unicode graphemes, so some visually non-English characters may remain if represented by composite Unicode sequences.
Remove non-English characters from cell text using VBA
If you want to remove non-English characters inside cell text (without deleting whole rows), you can also use VBA for more customizable automation. This is practical for data cleansing tasks that must be run frequently, and where add-ins are not an option.
1. Open Excel, then press Alt + F11 to launch the Microsoft Visual Basic for Applications editor. Go to Insert > Module and paste the following code into the module window:
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. Go back to Excel, select the range you want to clean, return to the VBA editor and run the code by pressing F5 or clicking the Run button. When prompted, select the range to process and confirm.
Effects: This code processes each selected cell, removes any character that is not a standard English letter, and updates the cell with the cleaned result. Original data will be overwritten, so it is prudent to backup your sheet or work on a copy.
Kutools for Excel - Supercharge Excel with over 300 essential tools. Enjoy permanently free AI features! Get It Now
Demo: Remove non-English characters from strings using Kutools for Excel
Best Office Productivity Tools
Supercharge Your Excel Skills with Kutools for Excel, and Experience Efficiency Like Never Before. Kutools for Excel Offers Over 300 Advanced Features to Boost Productivity and Save Time. Click Here to Get The Feature You Need The Most...
Office Tab Brings Tabbed interface to Office, and Make Your Work Much Easier
- Enable tabbed editing and reading in Word, Excel, PowerPoint, Publisher, Access, Visio and Project.
- Open and create multiple documents in new tabs of the same window, rather than in new windows.
- Increases your productivity by 50%, and reduces hundreds of mouse clicks for you every day!
All Kutools add-ins. One installer
Kutools for Office suite bundles add-ins for Excel, Word, Outlook & PowerPoint plus Office Tab Pro, which is ideal for teams working across Office apps.





- All-in-one suite — Excel, Word, Outlook & PowerPoint add-ins + Office Tab Pro
- One installer, one license — set up in minutes (MSI-ready)
- Works better together — streamlined productivity across Office apps
- 30-day full-featured trial — no registration, no credit card
- Best value — save vs buying individual add-in