Jak usunąć puste linie w vba (z przykładami)


Aby usunąć puste linie, możesz użyć następujących metod w VBA:

Metoda 1: Usuń puste wiersze w określonym zakresie

 Sub DeleteEmptyRowsInRange()
    Sheets(" Sheet1 ").Select
    Range(" A1:B10 ").Select
    Selection.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

To konkretne makro usunie wszystkie puste wiersze z zakresu A1:B10 Sheet1 .

Metoda 2: Usuń puste wiersze z całego arkusza

 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

To konkretne makro usunie wszystkie puste wiersze z całego aktywnego arkusza.

Poniższe przykłady pokazują, jak zastosować każdą metodę w praktyce.

Przykład 1: Usuń puste linie w określonym zakresie

Załóżmy, że mamy w programie Excel następujący zbiór danych zawierający informacje o różnych koszykarzach:

Możemy utworzyć następujące makro, aby usunąć wszystkie puste linie z zakresu A1:B10 na tym arkuszu:

 Sub DeleteEmptyRowsInRange()
    Sheets(" Sheet1 ").Select
    Range(" A1:B10 ").Select
    Selection.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

Po uruchomieniu tego makra otrzymamy następujący wynik:

Należy pamiętać, że wszystkie puste linie zostały usunięte z określonego przez nas zakresu.

Przykład 2: Usuń puste wiersze z całego arkusza

Załóżmy, że mamy w programie Excel następujący zbiór danych zawierający informacje o różnych koszykarzach:

Możemy utworzyć następujące makro, aby usunąć wszystkie puste linie z całego arkusza:

 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

Po uruchomieniu tego makra otrzymamy następujący wynik:

Należy pamiętać, że z całego arkusza usunięto wszystkie puste linie.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w VBA:

VBA: Jak usuwać wiersze na podstawie wartości komórki
VBA: Jak usunąć arkusz, jeśli nazwa zawiera określony tekst
VBA: jak usunąć pliki

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *