如何在 Excel 中一次性查找并删除所有匹配项?
在 Excel 中处理大量数据时,能否快速精准地定位所需信息至关重要。此时,查找和替换功能便派上用场——它可帮您在当前工作表或整个工作簿中快速查找并高亮特定值或格式,随后对结果执行删除、替换等操作。然而,Excel 自带的查找和替换功能一次仅支持查找一个值。本教程将为您介绍一种高效方法,助您在 Excel 中一次性快速查找多个不同值并将其批量删除。

使用 VBA 一次性查找并删除多个匹配项
我们精心编写了两段 VBA 代码,助您在选定区域或多个工作表中一键查找并立即删除多个不同值。请按以下步骤操作,并根据实际需求运行相应代码。
1. 在您的 Excel 中,按下 Alt+F11 键,即可打开 Microsoft Visual Basic for Applications 窗口。
2. 单击插入> 模块,然后将以下任一 VBA 代码复制到模块窗口中。
VBA 代码 1:一次性在选择区域中查找并删除多个匹配项
Sub FindAndDeleteDifferentValues_Range()
'Updated by ExtendOffice 20220823
Dim xRg As Range
Dim xFindStr As String
Dim xFindRg As Range
Dim xARg As Range
Dim xURg As Range
Dim xFindRgs As Range
Dim xFAddress As String
Dim xBol As Boolean
Dim xJ
xArrFinStr = Array("sales", "9", "@") 'Enter the values to delete, enclose each with double quotes and separate them with commas
On Error Resume Next
Set xRg = Application.InputBox("Please select the search scope:", "Kutools for Excel", , Type:=8)
If xRg Is Nothing Then Exit Sub
xBol = False
For Each xARg In xRg.Areas
Set xFindRg = Nothing
Set xFindRgs = Nothing
Set xURg = Application.Intersect(xARg, xARg.Worksheet.UsedRange)
For Each xFindRg In xURg
For xJ = LBound(xArrFinStr) To UBound(xArrFinStr)
If xFindRg.Text = xArrFinStr(xJ) Then
xBol = True
If xFindRgs Is Nothing Then
Set xFindRgs = xFindRg
Else
Set xFindRgs = Application.Union(xFindRgs, xFindRg)
End If
End If
Next
Next
If Not xFindRgs Is Nothing Then
xFindRgs.ClearContents
End If
Next
If xBol Then
MsgBox "Successfully deleted."
Else
MsgBox "No results found."
End If
End Sub 注意:在代码片段 xArrFinStr = Array("sales", "9", "@") 的第 13 行中,请将 "sales", "9", "@" 替换为您要查找并删除的实际值。请记住,每个值需用双引号括起,并以逗号分隔。
VBA 代码 2:一次性跨多个工作表查找并删除多个匹配项
Sub FindAndDeleteDifferentValues_WorkSheets()
'Updated by ExtendOffice 20220823
Dim xRg As Range
Dim xFindStr As String
Dim xFindRg As Range
Dim xARg, xFindRgs As Range
Dim xWShs As Worksheets
Dim xWSh As Worksheet
Dim xWb As Workbook
Dim xURg As Range
Dim xFAddress As String
Dim xArr, xArrFinStr
Dim xI, xJ
Dim xBol As Boolean
xArr = Array("Sheet1", "Sheet2") 'Names of the sheets where to find and delete the values. Enclose each with double quotes and separate them with commas
xArrFinStr = Array("sales", "9", "@") 'Enter the values to delete, enclose each with double quotes and separate them with commas
'On Error Resume Next
Set xWb = Application.ActiveWorkbook
xBol = False
For xI = LBound(xArr) To UBound(xArr)
Set xWSh = xWb.Worksheets(xArr(xI))
Set xFindRg = Nothing
xWSh.Activate
Set xFindRgs = Nothing
Set xURg = xWSh.UsedRange
Set xFindRgs = Nothing
For Each xFindRg In xURg
For xJ = LBound(xArrFinStr) To UBound(xArrFinStr)
If xFindRg.Text = xArrFinStr(xJ) Then
xBol = True
If xFindRgs Is Nothing Then
Set xFindRgs = xFindRg
Else
Set xFindRgs = Application.Union(xFindRgs, xFindRg)
End If
End If
Next
Next
If Not xFindRgs Is Nothing Then
xFindRgs.ClearContents
End If
Next
If xBol Then
MsgBox "Successfully deleted."
Else
MsgBox "No results found."
End If
End Sub - 在代码片段 xArr = Array("Sheet 1", "Sheet 2") 的第 15 行,您应将 "Sheet 1", "Sheet 2" 替换为您要查找并删除值的实际工作表名称。请记住,每个工作表名称需用双引号括起,并以逗号分隔。
- 在代码片段 xArrFinStr = Array("sales", "9", "@") 的第 16 行,您应将 "sales", "9", "@" 替换为您要查找并删除的实际值。请记住,每个值需用双引号括起,并以逗号分隔。
3. 按下 F5 运行 VBA 代码。注意:如果您使用的是 VBA 代码 1,将弹出一个对话框,要求您选择要从中查找并删除值的范围;您也可以点击工作表标签,即可选择整个工作表。
4. 如下所示的对话框将弹出,提示代码已删除指定的匹配项。单击确定即可关闭对话框。
5. 指定的值已被一次性删除。
使用选择指定单元格功能一次性查找并删除多个匹配项
Kutools for Excel 的选择指定单元格功能可一次性查找符合您设定的一个或两个条件的值,立即了解如何快速查找并批量删除多个值!
1. 在 Kutools 选项卡的编辑组中,单击选择 > 选择指定单元格。
- 在在区域内选择单元格框中,单击右侧的范围选择按钮
,指定要从中查找并删除值的范围。注意:若要在整个工作表中搜索,请单击工作表标签。 - 在选择类型部分,选择单元格选项。
- 在指定类型部分,最多设置两个条件:
- 单击左侧的下拉箭头,即可选择您所需的关系,例如包含、等于、小于、开头为等。
- 请根据您的需求,在相应框中输入数值。
- 指定两个条件之间的关系(如存在):And 或 Or。

3. 单击确定以选择符合您设定条件的单元格。随后将弹出对话框,告知您已找到并选中了多少个单元格。
4. 单击确定,然后按下 DELETE 键,即可一次性删除所选值。
Kutools for Excel——通过 300 多款必备工具全面增强 Excel 功能,助您工作更快速、更轻松,并借助 AI 功能实现更智能的数据处理与高效办公!立即获取
演示:在 Excel 中一次性查找并删除多个匹配项
相关文章
在 Excel 中,无论是手动录入数据、从其他来源复制内容,还是出于其他原因,重复数据都可能反复出现。有时,这些重复项是必要且有用的;但有时,它们却会引发错误或造成误解。本文将为您介绍如何在 Excel 中借助公式、条件格式规则以及第三方插件等方法,快速识别、高亮显示、筛选、统计并删除重复项。
如果您有两列(或两个列表)包含一些重复项,希望快速比较它们、找出匹配项并将其删除,该如何操作?本文将为您介绍几种高效的方法,助您轻松在 Excel 中完成这一任务。
如何在 Excel 中仅保留所选区域,同时删除其余所有内容?
在 Excel 中,我们可以快速直接地删除所选区域的内容,但您是否尝试过删除除所选区域以外的其他单元格内容?本文将为您介绍一些实用技巧,助您在 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 天全功能试用— 无需注册,无需信用卡
- 超值之选— 比单独购买插件更省钱
,指定要从中查找并删除值的范围。