Удаление дубликатов с помощью команды «Найти и удалить» происходит медленно - PullRequest
0 голосов
/ 06 ноября 2018

Раньше я использовал кусок макроса, который кто-то здесь предоставил мне в качестве средства для удаления дубликатов из одного столбца, когда они найдены в другом столбце. По какой-то причине функция удаления дубликатов никогда не работала для меня, и, читая об этом, сказал, что она может содержать ошибки. Это было средством для этого, и оно прекрасно работало на другом листе. Я повторно использую код, но при его использовании он очень медленный с небольшим набором данных для сортировки (всего 350 строк). У него нет проблем с поиском дубликата, но проблема возникает, когда он использует .delete shift: = up. Я делаю это так, чтобы по всему столбцу не было пустых ячеек, но теперь говорится о 3 секундах для завершения каждого удаления и сдвига. Если я просто использую .clear, реакция мгновенная, но в колонке остаются пустые клетки. Кто-нибудь видит причину, по которой этот код может занять так много времени?

Столбец V - это столбец сравнения, а столбец M - это столбец, из которого я удаляю дубликаты.

Sub Remove_Duplicates()
    Dim M As Range, V As Range
    Dim rc As Long
    rc = Rows.Count
    Set M = Range("M6:M" & Cells(rc, "M").End(xlUp).Row)
    Set V = Range("V6:V" & Cells(rc, "V").End(xlUp).Row)
    Mcnt = M.Count + 5

'Copies SAP Batch summary data into New Batch Summary
If Range("J6") = "" Then
Exit Sub
Else
Range("I6:J6", Range("I6:J6").End(xlDown)).Copy Range("L6:M6")
End If

'Moves From bottom of column M and goes up
    For i = Mcnt To 5 Step -1
        If V.Find(what:=Cells(i, "M"), after:=V(1)) Is Nothing Then
       Else
            'Cells(i, "M").Clear
            Cells(i, "M").Delete shift:=xlUp
        End If
    Next i

'Positions data in the New Batch column
'Call Reposition_Data
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...