繁体   English   中英

如何自动删除与 Excel 中的特定值不匹配的行?

[英]How to automatically delete rows that don't match a specific value in Excel?

我正在尝试删除与特定值不匹配的行。

我当前用于识别不匹配行的公式是=IF(K3<>L3,"No match","")

这存储在我的题为报告一的工作表的“M”列中。

如何让 Excel 自动删除 M 列中 value =“No Match”的行。

使用 VBA 遍历行并查看值是否为“不匹配”。

Sub DeleteNoMatch()
    LR = ActiveSheet.Cells(ActiveSheet.Rows.Count, "M").End(xlUp).Row ' last row  

    for r = LR to 1 step -1 ' adjust the 1 to what row to start at. (header on the table?)
        if range("M" & r).value = "No match" then Range(r & ":" & r).EntireRow.Delete
    next r
end sub

您可能希望将 LR 行中的列“M”更改为其他内容。
如果您有一个包含 100 行数据的表,但 M 列延伸到第 1000 行,那么(至少)900 行将被删除。

要么更改公式以使其为空时不匹配,要么更改确定列以“计数”的列

如果您真的想在 M 列中的单元格值更改为“不匹配”时自动删除行,那么您将需要Private Sub Worksheet_Calculate()解决方案。 下面的代码应该给你你想要的。 它假设您的数据从第 2 行开始。

Option Explicit
Private Sub Worksheet_Calculate()
On Error GoTo GetOut
Application.EnableEvents = False

Dim LastRow As Long, c As Range
LastRow = Cells(Rows.Count, 13).End(xlUp).Row

For Each c In Sheets("Report One").Range("M2:M" & LastRow)    
    If c.Value = "No match" Then
        c.EntireRow.Delete
    End If
Next c

Continue:
    Application.EnableEvents = True
    Exit Sub
GetOut:
    MsgBox Err.Description
    Resume Continue

End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM