如何在 Excel 列中删除非英文字符?
在 Excel 中管理数据时,常常需要清理文本,尤其是在处理可能包含多余或不一致字符的列表时。例如,您可能有一列姓名或条目,其中某些单元格含有非英文字符(如带重音符号的字母、特殊符号或外文字符),而您需要将这些字符删除,以确保数据一致性或便于后续处理。
手动删除此类字符不仅耗时,还极易出错,尤其是在处理大型数据集时。为高效应对这一挑战,Excel 提供了多种解决方案:您既可以使用 VBA 脚本自动删除包含任何非英文字符的整行,也可以选择就地清理数据,在保留原有数据结构完整性的前提下,仅移除文本中的非英文字符。本文将为您介绍这两种实用方法,助您轻松应对不同场景下的清理需求。
使用 Kutools for Excel 从字符串中删除非英文字符
通过 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 或单击运行按钮以执行代码,将弹出一个对话框,提示您“选择单列”。请在工作表中用鼠标选择要处理的列,然后单击确定。
4. 在后续对话框中单击确定以确认选择。脚本将检查所选列中的每个单元格,若检测到任意字符不属于大写或小写英文字母(A-Z),则会删除该单元格所在的整行。操作完成后,您将收到提示,告知任务已成功完成。
![]() | ![]() | ![]() |
注意:此 VBA 脚本一次仅适用于单列选择。建议在运行代码前保存工作簿,因为操作后删除的行将无法恢复。若数据量较大或包含特殊格式,强烈建议提前创建备份。
故障排除提示:如果出现错误提示或看似无任何反应,请确认已选中有效列,且仅选择单列(而非跨多列的区域)。运行此脚本需启用 VBA。若您的环境中 VBA 编辑器被锁定或受限,建议申请启用权限或改用其他方法。
适用性:此方法最适合确保数据仅包含纯英文字母条目,且无需保留含任何特殊或外文字符的行。但若您希望保留数据行,仅删除其中的非英文字符而非整行,请考虑使用下方的 Kutools 解决方案或其他方法。
使用 Kutools for Excel 从字符串中删除非英文字符
如果您希望通过删除单元格内的非英文字符来清理文本——同时保留所有行不被删除——Kutools for Excel 中的删除特定字符功能为您提供了一种快速实用的解决方案。此方法适用于需要保留整体数据结构,但清除字符串中的特殊符号、带重音字符或外文字符,仅保留常规英文字母的场景。
例如,此方法非常适合标准化姓名、产品代码或任何可能因输入错误或从外部来源复制而包含各种符号或非英文字符的字母数字条目。与手动清理相比,此方法降低了遗漏不需要字符的风险,并加快了处理速度。
![]() | ![]() | ![]() |
1. 选择包含待清理文本字符串的区域,然后转到 Excel 功能区中的 Kutools 选项卡,点击文本,并在下拉菜单中选择删除特定字符。请参见下方截图:
2. 在弹出的删除特定字符对话框中,勾选非字母选项(该选项可删除所有非字母字符,包括数字、标点符号及特殊或非英文符号)。预览窗格将自动更新,实时显示删除非英文和特殊字符后的文本效果。
3. 确认预览符合预期后,单击确定,即可立即从所选区域中删除所有非英文字符(即非标准英文字母的任何内容),其余数据保持不变。
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 AI 助手:基于以下内容革新数据分析:智能执行 | 生成代码| 创建自定义公式 | 数据分析及生成图表| 调用 Kutools Functions…… |
| 热门功能:查找、高亮或标记重复项 | 删除空白行 | 合并列或单元格且不丢失数据 | 不使用公式的四舍五入…… | |
| 高级 LOOKUP:多条件 VLookup | 多值 VLookup | 跨多工作表 VLookup | 模糊查找…… | |
| 高级下拉列表:快速创建下拉列表 | 级联下拉列表 | 多选下拉列表…… | |
| 列管理器:添加指定数量的列|移动列|切换隐藏列的可见性状态|比较区域与列…… | |
| 特色功能:网格聚焦 | 设计视图 |增强编辑栏 | 工作簿和表管理器 | 资源库(自动文本)| 日期提取 | 汇总工作表 | 加密/解密单元格 | 按列表发送邮件 | 超级筛选 | 特殊筛选(筛选粗体单元格/斜体/删除线……) ...... | |
| 精选 15 工具集:12 文本工具(添加文本,删除特定字符,……)| 50+ 图表 类型(甘特图,……)| 40+ 实用公式(基于生日计算年龄,……)| 19 插入工具(插入二维码,从路径插入图片,……)| 12 转换工具(小写金额转大写,汇率转换,……)| 7 合并和拆分工具(高级合并行,分割单元格,……)|……更多 |
使用 Kutools for Excel 大幅提升您的 Excel 技能,体验前所未有的高效。Kutools for Excel 提供 300 多项高级功能,助您提升生产力、节省时间。立即点击此处,获取您最需要的功能……
Office Tab 为 Office 带来标签式界面,让您的工作更轻松
- 在 Word、Excel、PowerPoint、Publisher、Access、Visio 和 Project 中启用标签式编辑和阅读。
- 在同一个窗口的新标签页中打开并创建多个文档,而非在新窗口中。
- 将您的工作效率提升 50%,每天减少数百次鼠标点击!
所有 Kutools 插件,一个安装程序
Kutools for Office 套件捆绑了适用于 Excel、Word、Outlook 和 PowerPoint 的插件以及 Office Tab Pro,非常适合需要跨多个 Office 应用高效协作的团队。
- 一体化套件— Excel、Word、Outlook 和 PowerPoint 插件 + Office Tab Pro
- 一个安装程序,一个许可证— 几分钟内完成设置(支持 MSI)
- 协同效果更佳— 在多个 Office 应用中实现高效协同
- 30 天全功能试用— 无需注册,无需信用卡
- 超值之选— 比单独购买插件更省钱



