【问题标题】:Deleting visible duplicates of visible rows only仅删除可见行的可见重复项
【发布时间】:2016-03-06 19:28:10
【问题描述】:

VBA 新手。我正在使用下面的代码来识别和删除 Sheet1 中在 Sheet2 的 C 列中具有重复值的行,但我需要代码来删除已经从过滤器中隐藏的行。

我已经四处搜索并尝试使用 .SpecialCells(xlCellTypeVisible) 但我不知道将它放在哪里。我认为的另一个选择是使用 EntireRow.Hidden 语法,但我也不知道如何合并它。

感谢任何帮助。

Sub DeleteDuplicates()
    Application.ScreenUpdating = False
    Dim Row As Long
    Dim FoundDup As Range

    Sheets("Sheet1").Select

    For Row = Range("C65536").End(xlUp).Row To 2 Step -1

    Set FoundDup = Sheets("Sheet2").Range("C:C").Find(Cells(Row, 3), LookIn:=xlValues, lookat:=xlWhole)


    If Not FoundDup Is Nothing Then
        Cells(Row, 3).EntireRow.Delete
    End If


    Next Row

    Application.ScreenUpdating = True

End Sub

【问题讨论】:

  • 如果解决方案有效,请将答案标记为已接受。 (单击它旁边的复选标记。):-)

标签: vba excel duplicates


【解决方案1】:

在您的 If 语句中添加额外条件:

If Not FoundDup Is Nothing And Not Cells(Row,3).EntireRow.Hidden Then

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-26
    • 2011-02-27
    • 2021-07-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多