跳到主要内容

如何在 Excel 中一次查找和删除多个匹配项?

在 Excel 中处理大数据时,能够在任何特定时刻快速找到您需要的信息至关重要。 这就是您需要查找和替换功能的时候,它可以帮助您在活动工作表或整个工作簿中查找和突出显示特定值或格式,然后对结果执行您想要的操作,例如删除或替换它们。 但是,使用 Excel 的查找和替换,您一次只能找到一个值。 在本教程中,我将介绍一种快速查找多个不同值并在 Excel 中一次删除它们的方法。


使用 VBA 一次查找和删除多个匹配项

我们创建了两个 VBA 代码来帮助您在所选范围内或跨多个工作表中查找多个不同的值并立即删除它们。 请按照以下步骤并根据您的需要运行代码。

1. 在 Excel 中,按 其他 + F11 键打开 Microsoft Visual Basic应用程序 窗口。

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 行,你应该替换 “销售”、“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("Sheet1", "Sheet2") 在第 15 行,你应该替换 “表 1”、“表 2” 使用要在其中查找和删除值的工作表的实际名称。 请记住用双引号将每个工作表名称括起来,并用逗号分隔它们。
  • 在片段中 xArrFinStr = Array("sales", "9", "@") 在第 16 行,你应该替换 “销售”、“9”、“@” 对于要查找和删除的实际值,请记住用双引号将每个值括起来并用逗号分隔它们。

3。 按 F5 运行 VBA 代码。 请注意: 如果使用 VBA代码1,将弹出一个对话框,要求您选择查找和删除值的范围。 您还可以单击工作表选项卡以选择整个工作表。

4. 弹出如下图的对话框,告诉你代码已经删除了指定的匹配项。 点击 OK 关闭对话框。

5. 指定的值已被一次性删除。


使用“选择特定单元格”功能一次查找和删除多个匹配项

Kutools for Excel 提供了 选择特定的单元格 一次查找满足您设置的一个或两个条件的值的功能,请继续阅读以了解如何一次快速查找和删除多个值。

1。 在 库工具 标签,在 编辑 组,点击 选择 > 选择特定的单元格.

2.在弹出窗口中 选择特定的单元格 对话框,请执行以下操作:
  • 选择此范围内的单元格 框,单击范围选择按钮 在右侧指定范围 在哪里查找和删除值. 请注意: 要搜索整个工作表,请单击工作表选项卡。
  • 选择类型 部分,选择 手机 选项。
  • 特定类型 部分,最多设置两个条件:
    • 点击左侧的下拉箭头,选择您需要的关系,例如 包含, 等于, 小于, 开始于等等。
    • 根据需要在相应框中键入值。
    • 指定两个条件之间的关系(如果有): or Or.

3。 点击 Ok 选择满足您设置的条件的单元格。 将弹出一个对话框,告诉您找到并选择了多少个单元格。

4。 点击 OK. 现在,按 删除 键一次删除选定的值。

请注意: 要使用 选择特定的单元格 功能,你应该在你的计算机上安装 Kutools for Excel。如果您没有安装Kutools, 点击这里下载并安装. 专业的 Excel 插件提供 30 天免费试用,没有任何限制。


在 Excel 中一次查找和删除多个匹配项


相关文章

在Excel中查找,突出显示,过滤,计数,删除重复项

在Excel中,当我们手动记录数据,从其他来源复制数据或出于其他原因而重复出现数据。 有时,重复是必要且有用的。 但是,有时重复的值会导致错误或误解。 本文将介绍在Excel中通过公式,条件格式设置规则,第三方加载项等快速识别,突出显示,筛选,计数,删除重复项的方法。

如何在 Excel 中比较两列并删除匹配项?

如果您有两列/列表,其中包括一些重复项,现在您要比较它们并找出匹配项,然后将其删除,如何快速解决? 在本文中,我介绍了多种方法来帮助您在Excel中进行处理。

如何在 Excel 中删除除选定范围之外的所有范围?

在Excel中,我们可以快速直接删除选定的范围,但是您是否尝试过删除选定范围以外的其他单元格内容? 本文,我将为您介绍一些技巧,以帮助您快速轻松地解决Excel中的此任务。

如何删除一系列单元格中的所有图片?

如果现在在工作表中填充了多张图片,您想在指定范围内删除其中的一些图片,如何快速处理?

最佳办公生产力工具

🤖 Kutools 人工智能助手:基于以下内容彻底改变数据分析: 智能执行   |  生成代码  |  创建自定义公式  |  分析数据并生成图表  |  调用 Kutools 函数...
热门特色: 查找、突出显示或识别重复项   |  删除空白行   |  合并列或单元格而不丢失数据   |   不使用公式进行四舍五入 ...
超级查询: 多条件VLookup    多值VLookup  |   跨多个工作表的 VLookup   |   模糊查询 ....
高级下拉列表: 快速创建下拉列表   |  依赖下拉列表   |  多选下拉列表 ....
列管理器: 添加特定数量的列  |  移动列  |  切换隐藏列的可见性状态  |  比较范围和列 ...
特色功能: 网格焦点   |  设计图   |   大方程式酒吧    工作簿和工作表管理器   |  资源库 (自动文本)   |  日期选择器   |  合并工作表   |  加密/解密单元格    按列表发送电子邮件   |  超级筛选   |   特殊过滤器 (过滤粗体/斜体/删除线...)...
前 15 个工具集12 文本 工具 (添加文本, 删除字符,...)   |   50+ 图表 类型 (甘特图,...)   |   40+ 实用 公式 (根据生日计算年龄,...)   |   19 插入 工具 (插入二维码, 从路径插入图片,...)   |   12 转化 工具 (小写金额转大写, 货币兑换,...)   |   7 合并与拆分 工具 (高级组合行, 分裂细胞,...)   |   ... 和更多

使用 Kutools for Excel 增强您的 Excel 技能,体验前所未有的效率。 Kutools for Excel 提供了 300 多种高级功能来提高生产力并节省时间。  单击此处获取您最需要的功能...

产品描述


Office Tab 为 Office 带来选项卡式界面,让您的工作更加轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高50%,并减少数百次鼠标单击!
Comments (0)
No ratings yet. Be the first to rate!
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations