Как удалить пустые строки в vba (с примерами)
Вы можете использовать следующие методы в VBA для удаления пустых строк:
Способ 1: удалить пустые строки в определенном диапазоне
Sub DeleteEmptyRowsInRange()
Sheets(" Sheet1 ").Select
Range(" A1:B10 ").Select
Selection.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
Этот конкретный макрос удалит все пустые строки из диапазона A1:B10 Sheet1 .
Способ 2: удалить пустые строки на всем листе
Sub DeleteEmptyRowsInSheet()
'turn off screen updating for faster performance
Application.ScreenUpdating = False
Dim i As Long
With ActiveSheet
For i = .Cells.SpecialCells(xlCellTypeLastCell).Row To 1 Step -1
If WorksheetFunction.CountA(.Rows(i)) = 0 Then
ActiveSheet.Rows(i).Delete
End If
Next
End With
'turn screen updating back on
Application.ScreenUpdating = True
End Sub
Этот конкретный макрос удалит все пустые строки со всего активного листа.
Следующие примеры показывают, как использовать каждый метод на практике.
Пример 1. Удаление пустых строк в определенном диапазоне
Допустим, у нас есть следующий набор данных в Excel, содержащий информацию о различных баскетболистах:
Мы можем создать следующий макрос, чтобы удалить все пустые строки из диапазона A1:B10 на этом листе:
Sub DeleteEmptyRowsInRange()
Sheets(" Sheet1 ").Select
Range(" A1:B10 ").Select
Selection.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
Запустив этот макрос, мы получим следующий вывод:
Обратите внимание, что все пустые строки были удалены из указанного нами диапазона.
Пример 2. Удаление пустых строк на всем листе
Допустим, у нас есть следующий набор данных в Excel, содержащий информацию о различных баскетболистах:
Мы можем создать следующий макрос, чтобы удалить все пустые строки со всего листа:
Sub DeleteEmptyRowsInSheet()
'turn off screen updating for faster performance
Application.ScreenUpdating = False
Dim i As Long
With ActiveSheet
For i = .Cells.SpecialCells(xlCellTypeLastCell).Row To 1 Step -1
If WorksheetFunction.CountA(.Rows(i)) = 0 Then
ActiveSheet.Rows(i).Delete
End If
Next
End With
'turn screen updating back on
Application.ScreenUpdating = True
End Sub
Запустив этот макрос, мы получим следующий вывод:
Обратите внимание, что все пустые строки были удалены со всего листа.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в VBA:
VBA: как удалить строки на основе значения ячейки
VBA: как удалить лист, если имя содержит определенный текст
VBA: как удалить файлы