Як видалити порожні рядки у vba (з прикладами)
Для видалення порожніх рядків у VBA можна використовувати такі методи:
Спосіб 1: видаліть порожні рядки в певному діапазоні
Sub DeleteEmptyRowsInRange()
Sheets(" Sheet1 ").Select
Range(" A1:B10 ").Select
Selection.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
Цей конкретний макрос видалить усі порожні рядки з діапазону A1:B10 Аркуша1 .
Спосіб 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: як видалити файли