2015-12-02 5 views
2

Новое в VBA. Я использую следующий код, чтобы идентифицировать и удалять строки в Sheet1, которые имеют повторяющиеся значения в столбце C листа 2, но мне нужен код , а не удалять строки, которые уже скрыты от фильтра.Удаление видимых дубликатов только видимых строк

Я искал вокруг и пытался использовать .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 
+0

Если решение работает, пожалуйста, отметьте ответ, как принято. (Нажмите галочку рядом с ней.) :-) – nwhaught

ответ

1

Добавить дополнительное условие к вашему If заявление:

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

Смежные вопросы