删除列中包含重复信息的行

Tom*_*y M 3 excel vba excel-vba rowdeleting

我正在编写一个代码,将数据从一个工作表复制到另一个工作表中,我的工作正常.现在,我正在尝试对其进行编码,以根据F列中的信息ID号删除包含重复信息的任何行.我们流程的一部分是在每行工作时手动输入E列.

所以我的最终目标是让代码删除E列为空白而F列为重复的行.我的代码运行,但不删除任何内容.我真的希望我只是错过了一些非常明显的东西.

For i = 1 To Range("f" & Rows.Count).End(xlUp).Row
    If Cells(i, 5).Value = "" Then 'if column E is blank on row i
        x = Cells(i, 6).Value
        If Not IsError(Application.Match(x, "F:F", 0)) Then '& if that row is a duplicate
            ActiveSheet.Range(x).EntireRow.Delete 'delete new duplicate row
        End If
    End If
Next i
Run Code Online (Sandbox Code Playgroud)

小智 5

尝试一下,

For i = Range("f" & Rows.Count).End(xlUp).Row to 1 Step -1
    If Cells(i, 5).Value = "" Then 'if column E is blank on row i
        x = Cells(i, 6).Value
        If Application.Countif(Columns(6), x) > 1 Then '& if that row is a duplicate
            Rows(i).EntireRow.Delete 'delete new duplicate row
        End If
    End If
Next i
Run Code Online (Sandbox Code Playgroud)

你试图删除行号x,而不是.此外,一切都将匹配一次.

  • @ user3561813 - 我没有看到在短时间内发布类似答案的任何问题,并且fw是正确的; 你花时间扩展了"最佳实践"修正,比如我只在代码中修正了自下而上的工作.奶油会升到顶部. (2认同)