Страницы: 1
RSS
Удаление скрытых фильтром строк, Долго думает и виснет при попытке удалить скрытые строки
 
Добрый день!
Excel 2010
PLEX 2017.2 от 14 мая 2017 г.
Проблема:
Файл на 12000-65000 строк. Надо удалить скрытые фильтром строки (процентов 90).
При запуске этой функции комп уходит в раздумье и ... всё. Минут 15 ждал. Так и не ожил. (i5-6500 3.2Ггц 4Гб ОЗУ)
Потестил функцию на 20 строках - работает.
Удалил все пустые строки, для примера оставил 2000 строк с данными, под фильтром 1700. Запустил и... после 5(!) минут ожиданий получил результат.
Такое быстродействие - это нормально?
Есть менее трудоёмкие варианты?

Тимур.
 
Timuchin, для быстродействия строки нужно удалять не построчно, а разом.
Загоняем строки в массив, и потом разом грохаем.
Код
Sub DeleteFilteredRows()
Dim rr As Range
    LastRow = ActiveSheet.UsedRange.Rows.Count
    For r = 1 To LastRow
        If Rows(r).Hidden Then
            If rr Is Nothing Then
                Set rr = Cells(r, 1)
            Else
                Set rr = Union(rr, Cells(r, 1))
            End If
        End If
    Next r
    If Not rr Is Nothing Then rr.EntireRow.Delete
    On Error Resume Next
    ActiveSheet.ShowAllData
    On Error GoTo 0
End Sub
Страницы: 1
Наверх