Як видалити порожні рядки у 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: як видалити файли

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *