Note: The other languages of the website are Google-translated. Back to English

如何在Excel中根据单元格值删除行?

要基于Excel中的单元格值快速删除或删除多行,您可能需要先选择包含特定单元格值的整行,然后再删除它们。 似乎没有一种快速的方法来删除基于单元格值的行,而是使用VBA代码。 这里有一些快速技巧可以帮助您。


使用查找和替换功能根据单元格值删除行

在Excel中,您可以应用功能强大的“查找和替换”功能轻松地基于某个单元格值删除行。 请执行以下操作:

1。 选择要根据某些单元格值删除行的范围,然后按并打开“查找和替换”对话框 Ctrl + F 键同时。

2。 在“查找和替换”对话框中,请输入特定的单元格值(在本例中,我们输入 e) 进入 Find what 框,然后单击 Find All 按钮。 请参阅下面的第一个屏幕截图:

3。 在“查找和替换”对话框的底部选择所有搜索结果,然后关闭此对话框。 (备注:您可以选择搜索结果之一,然后 Ctrl + A 键以选择所有找到的结果。 请参阅上面的第二个屏幕截图。)
然后您可以看到所有包含特定值的单元格都被选中。

4。 继续右键单击所选单元格,然后选择 Delete 从右键单击菜单中。 然后检查 Entire row 在弹出的删除对话框中选择选项,然后单击 OK 按钮。 现在,您将看到所有包含特定值的单元格都被删除了。 查看以下屏幕截图:

然后已经基于该特定值删除了整行。


使用VBA代码根据单元格值删除行

使用以下VBA代码,您可以快速删除具有某些单元格值的行,请执行以下步骤:

1。 按 Alt + F11 按键同时打开 Microsoft Visual Basic for applications 窗口,

2。 点击 Insert > Module,然后将以下代码输入到模块中:

VBA:根据单元格值删除整个行

Sub DeleteRows()
'Updateby20211217
Dim rng As Range
Dim InputRng As Range
Dim DeleteRng As Range
Dim DeleteStr As String
Dim xTitleId As String
Dim xArr
Dim xF As Integer
Dim xWSh As Worksheet
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set rng = Application.Selection
Set InputRng = Application.InputBox("Range :", xTitleId, rng.Address, Type:=8)
If InputRng Is Nothing Then Exit Sub
DeleteStr = Application.InputBox("Delete Text", xTitleId, Type:=2)
Set xWSh = InputRng.Worksheet
For Each rng In InputRng
    If rng.Value = DeleteStr Then
        If DeleteRng Is Nothing Then
            Set DeleteRng = rng
        Else
            Set DeleteRng = Application.Union(DeleteRng, rng)
            Set DeleteRng = DeleteRng.EntireRow
        End If
    End If
Next
xArr = Split(DeleteRng.AddressLocal, ",")
DeleteRng.Select
DeleteRng.Delete
For xF = UBound(xArr) To 0 Step -1
    Set DeleteRng = xWSh.Range(xArr(xF))
    DeleteRng.Delete
Next
End Sub

3。 然后点击 Run 按钮运行代码。

4。 在弹出的对话框中,请选择要根据特定值删除行的范围,然后点击 OK 按钮。

5。 在另一个对话框中,请输入您要删除的行所基于的特定值,然后单击 OK 按钮。 看截图:

然后您将看到已经基于指定的值删除了整个行。


使用Kutools for Excel删除基于一个或两个单元格值的行

如果你已经安装 Kutools for Excel,它的 Select Specific Cells 功能可以帮助您快速删除具有特定值的行。 请执行以下操作:

Kutools for Excel -包括300多个用于Excel的便捷工具。 全功能30天免费试用,无需信用卡! 立即行动吧!

1。 选择要根据特定值删除行的范围,然后单击 Kutools > Select > Select Specific Cells。 看截图:

2。 在打开的“选择指定的单元格”对话框中,请检查 Entire row 选项,选择 Contains Specific type 下拉列表,在右框中输入指定的值,然后单击 Ok 按钮(请参见上面的屏幕截图)。
应用此功能后,将弹出一个对话框,显示根据指定条件找到了多少个单元格。 请点击 OK 按钮关闭它。

3。 现在,选择具有特定值的整个行。 请右键点击选中的行,然后点击 Delete 从右键单击菜单中。 参见下面的截图:

备注: 这个 Select Specific Cells 功能支持删除一个或两个特定值的行。 要基于两个指定值删除行,请在 Specific type “选择特定单元格”对话框的“部分”部分,如以下屏幕截图所示:

Kutools for Excel -包括300多个用于Excel的便捷工具。 全功能30天免费试用,无需信用卡! 立即行动吧!


使用Kutools for Excel删除基于多个单元格值的行

在某些情况下,您可能需要从Excel中的另一列/列表中删除基于多个单元格值的行。 在这里我将介绍 Kutools for Excel's Select Same & Different Cells 轻松快速解决问题的功能。

Kutools for Excel -包括300多个用于Excel的便捷工具。 全功能30天免费试用,无需信用卡! 立即行动吧!

1。 点击 Kutools > Select > Select Same & Different Cells 打开“选择相同和不同的单元格”对话框。

2。 在开幕 Select Same & Different Cells 对话框,请执行以下操作(请参见屏幕截图):

(1)在 Find values in 框,请选择您将在其中找到某些值的列;
(2)在 According to 框,请选择具有多个值的列/列表,您将基于这些值删除行;
(3)在 Based on 部分,请检查 Each row 选项;
(4)在 Find 部分,请检查 Same Values 选项;
(5)检查 Select entire rows 打开对话框底部的选项。
备注:如果两个指定的列包含相同的标题,请检查 My data has headers 选项。

3。 点击 Ok 按钮以应用此实用程序。 然后出现一个对话框,显示已选择多少行。 只需点击 OK 按钮关闭它。

然后,已选择所有包含指定列表中的值的行。

4。 点击 Home > Delete > Delete Sheet Rows 删除所有选定的行。


演示:根据Excel中的一个或多个单元格值删除行


Kutools for Excel 包括适用于Excel的300多种便捷工具,可以在30天之内免费试用。 立即下载并免费试用!

最佳办公效率工具

Kutools for Excel解决了您的大多数问题,并使您的生产率提高了80%

  • 重用: 快速插入 复杂的公式,图表 以及您以前使用过的任何东西; 加密单元 带密码 创建邮件列表 并发送电子邮件...
  • 超级公式栏 (轻松编辑多行文本和公式); 阅读版式 (轻松读取和编辑大量单元格); 粘贴到过滤范围...
  • 合并单元格/行/列 不会丢失数据; 拆分单元格内容; 合并重复的行/列...防止细胞重复; 比较范围...
  • 选择重复或唯一 行; 选择空白行 (所有单元格都是空的); 超级查找和模糊查找 在许多工作簿中; 随机选择...
  • 确切的副本 多个单元格,无需更改公式参考; 自动创建参考 到多张纸; 插入项目符号,复选框等...
  • 提取文字,添加文本,按位置删除, 删除空间; 创建和打印分页小计; 在单元格内容和注释之间转换...
  • 超级滤镜 (将过滤方案保存并应用于其他工作表); 高级排序 按月/周/日,频率及更多; 特殊过滤器 用粗体,斜体...
  • 结合工作簿和工作表; 根据关键列合并表; 将数据分割成多个工作表; 批量转换xls,xlsx和PDF...
  • 超过300种强大功能。 支持Office / Excel 2007-2019和365。支持所有语言。 在您的企业或组织中轻松部署。 完整功能30天免费试用。 60天退款保证。
kte选项卡201905

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

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高50%,并减少数百次鼠标单击!
officetab底部
按评论排序
注释 (39)
还没有评分。 成为第一位评论!
该评论由网站上的主持人最小化
极好的! 这是一种享受,我稍微改变了它以适应我需要的东西,但纯粹是天才。 哦 VBA 版本。
该评论由网站上的主持人最小化
有什么方法可以修改 If (cell.Value) = "Apple" 以包含多个值?
该评论由网站上的主持人最小化
Bobby,试试这个,它应该得到你想要的: If (cell.Value) = "Apple" OR (cell.Value) = "Monday"
该评论由网站上的主持人最小化
无论如何要让值识别一个值,无论是 > 还是 = 到某个值?
该评论由网站上的主持人最小化
嘿 - 非常感谢你的剧本。 我想知道您是否可以使用通配符,以便您可以选择单元格中匹配的任何内容而不是特定项目? 我试过使用 ** 通配符,但它似乎没有做任何事情。 这是我所拥有的: Sub Delete_Rows() Dim rng As Range, cell As Range, del As Range Set rng = Intersect(Range("B6:B20"), ActiveSheet.UsedRange) For Each cell In rng If cell.Value Like "*WORDTODELETE*" _ Then If del Is Nothing Then Set del = cell Else: Set del = Union(del, cell) End If End If Next cell On Error Resume Next del.EntireRow.Delete End Sub
该评论由网站上的主持人最小化
衷心的感谢 - 当营销人员尝试编写代码时总是很有趣,而且这些信息非常有帮助。 我无法让代码跨越多个列(“AA2:AA3000”有效,“AB2:AB3000”有效,但“AA2:AB3000”无效。没有惊天动地的 Kaboom - 它什么也没做。我'已经通过按顺序运行几个宏来解决它(我想是业余的),但可能有一种更优雅的方式。再次感谢您的帮助,Jim(纽约州梅尔维尔)
该评论由网站上的主持人最小化
我得到:运行时错误'13':类型不匹配调试突出显示 If (cell.Value) = "FALSE" _ Then 部分。 我完全迷失在 MVB 中,任何帮助将不胜感激。
该评论由网站上的主持人最小化
假设我将下面的代码放入删除所有包含苹果的行,但是我希望它在完成后继续并删除所有包含香蕉的行? 我试图复制代码,但它似乎在苹果之后停止。 谢谢。 Sub Delete_Rows() Dim rng As Range, cell As Range, del As Range Set rng = Intersect(Range("A1:C20"), ActiveSheet.UsedRange) For Each cell In rng If (cell.Value) = "Apple" _ Then If del is Nothing Then Set del = cell Else: Set del = Union(del, cell) End If End If Next cell On Error Resume Next del.EntireRow.Delete End Sub
该评论由网站上的主持人最小化
我只想说一声谢谢。 这就像一个魅力。
该评论由网站上的主持人最小化
绝对棒极了! 感谢分享!!!
该评论由网站上的主持人最小化
谢谢,这太棒了! 快速评论,我尝试了 excel 2010 中的查找和替换功能。为了选择所有找到的结果,我不得不使用 Ctrl + A 而不是 Alt + A。
该评论由网站上的主持人最小化
嗨,请问删除不包含“Apple”的行的最简单方法是什么? 谢谢
该评论由网站上的主持人最小化
嗨,有什么办法可以写它来删除一行,但有 OR 异常? 即删除重复的行,但忽略某个值。 我想删除重复项,除非有问题的列包含空白 b/c,该列还没有有效数据。 我像你一样跑了,但我在有问题的列中删除了带有空白的行,所以我不能按原样使用它。 谢谢
该评论由网站上的主持人最小化
感谢您提供 VB 脚本。 我迫不及待想试试这个。 问题:在删除它们和/或复制到工作簿中的单独选项卡之前,是否有标记要删除的列? 此外,有没有一种方法可以一次在多个工作簿/文件上运行此脚本?
该评论由网站上的主持人最小化
谢谢。。对我很有帮助。。。
该评论由网站上的主持人最小化
我想删除 column1 = "Apple" AND column3 = "green" 的所有行。 请?
该评论由网站上的主持人最小化
我不确定如何使用宏来做到这一点,但是一个可以很好地完成工作的选项是添加一个额外的列,测试一个列是“苹果”,另一个是“绿色”,然后让它给出了一个简单的“是”或“否”值。 而不是使用上述任何一个选项来搜索值“yes”并根据该值而不是 2 个单独的值删除行。
该评论由网站上的主持人最小化
我在一个文件中有一个商店列表。 我有一个返回数千行的报告。 商店编号始终在 A 列中。是否有代码/宏可以搜索报告并从商店列表中删除所有包含商店编号的列。 需要考虑 vlookup 和“Do While”。
该评论由网站上的主持人最小化
您好,非常感谢您提供 VBA 代码。 我有一个问题。 是否可以使代码成为可以同时选择多个单元格值进行删除的方式? 例如同时选择 Apple 和 Emily 并删除它们? 我感谢您的工作并期待您的回复。 琼·K
该评论由网站上的主持人最小化
如何指定范围 A3:D3000(即我不希望用户选择范围)? 如何使删除字符串成为单元格引用,例如。 G1?
该评论由网站上的主持人最小化
是否可以比较两列然后删除? 如果单元格 A=x 和单元格 B=y 则在 A3:D3000 范围内,然后删除行?
该评论由网站上的主持人最小化
真棒。 非常感谢。 :)
这里还没有评论
加载更多
留下你的意见
以访客身份发帖
×
评价此帖子:
0   产品特性
建议地点