Форум по VBA и MS Office

VBA, Excel => VBA, макросы в Excel => Тема начата: captain от 10 сентября 2015, 14:48

Название: Как удалить в Excel пустые строки?
Отправлено: captain от 10 сентября 2015, 14:48
Здравствуйте. Скажите, пожалуйста, как удалить в Excel пустые строки?
Название: Re: Как удалить в Excel пустые строки?
Отправлено: Администратор от 10 сентября 2015, 15:27
Пустые строки можно удалить так. Макрос просматривает все ячейки в строке. Если все ячейки пустые, то строка удаляется.

Sub Main()
   
    Dim i As Long
   
    '1. Отключение обновления монитора (для ускорения работы макроса).
    Application.ScreenUpdating = False
   
    '2. Движение по строкам снизу вверх от строки 5 до первой строки.
    For i = 5 To 1 Step -1
        ' Если в строке пусто.
        If Application.WorksheetFunction.CountA(Rows(i)) = 0 Then
            ' Удаление строки.
            Rows(i).Delete
        End If
    Next i
   
    '3. Включение монитора.
    Application.ScreenUpdating = True
   
End Sub
Название: Re: Как удалить в Excel пустые строки?
Отправлено: captain от 11 сентября 2015, 11:01
Спасибо! Буду пробовать.
Скажите на сколько примерно ускоряет работу макроса если выключить монитор?
Название: Re: Как удалить в Excel пустые строки?
Отправлено: Администратор от 11 сентября 2015, 11:04
На очень много ускоряет. Во сколько раз, я не знаю. Но вы можете сами это наблюдать - сделайте макрос без отключения монитора и с отключением. Думаю, начиная со строк 100 будет уже заметно, если надо удалять много. Если надо удалять одну - десять строк, то, наверное, разницы не увидите.
Название: Re: Как удалить в Excel пустые строки?
Отправлено: captain от 11 сентября 2015, 13:06
Спасибо за макрос, работает!