Код для удаления (несколько) пустых строк для чрезвычайно большой книги - PullRequest
0 голосов
/ 22 февраля 2020

Недавно я получил 500 тыс. Строк Excel из базы данных бухгалтерского учета. Текущий файл не может быть использован в его текущем формате и слишком велик. Я надеюсь уменьшить Excel, удалив пустые строки-разделители, которые находятся между каждой строкой с фактическими числами (за исключением того, что в этих строках-разделителях есть три ячейки, которые содержат тезисы (например, формулы, которые выпадают ""), которые предотвращают строку от того, чтобы быть полностью пустым).

Я попытался запустить следующий код, но, поскольку файл очень большой, Excel вылетает при запуске макроса. Мне известно об использовании SourceRange = Application.Selection, но я не собираюсь создавать функцию, позволяющую запускать макрос, и она будет постоянно удалять, скажем, 25 тыс. Строк за раз, в отличие от ручного выбора диапазона или использования следующего кода ниже.

Какой будет лучший метод?

Sub DeleteBlankRows()

Dim x As Long

With ActiveSheet

    For x = .Cells.SpecialCells(xlCellTypeLastCell).Row To 1 Step -1
        If WorksheetFunction.CountA(.Rows(x)) <= 3 Then
            ActiveSheet.Rows(x).Delete
        End If
    Next

End With

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...