Come eliminare le righe vuote in vba (con esempi)


È possibile utilizzare i seguenti metodi in VBA per rimuovere le righe vuote:

Metodo 1: rimuovere le righe vuote in un intervallo specifico

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

Questa particolare macro rimuoverà tutte le righe vuote dall’intervallo A1:B10 di Sheet1 .

Metodo 2: Elimina righe vuote nell’intero foglio

 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

Questa particolare macro eliminerà tutte le righe vuote dall’intero foglio attivo.

Gli esempi seguenti mostrano come utilizzare ciascun metodo nella pratica.

Esempio 1: rimuovi le righe vuote in un intervallo specifico

Supponiamo di avere il seguente set di dati in Excel che contiene informazioni su vari giocatori di basket:

Possiamo creare la seguente macro per rimuovere tutte le righe vuote dall’intervallo A1:B10 su questo foglio:

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

Una volta eseguita questa macro, riceviamo il seguente output:

Tieni presente che tutte le righe vuote sono state rimosse dall’intervallo specificato.

Esempio 2: Elimina righe vuote in un intero foglio

Supponiamo di avere il seguente set di dati in Excel che contiene informazioni su vari giocatori di basket:

Possiamo creare la seguente macro per rimuovere tutte le righe vuote dall’intero foglio:

 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

Una volta eseguita questa macro, riceviamo il seguente output:

Tieni presente che tutte le righe vuote sono state rimosse dall’intero foglio.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in VBA:

VBA: come eliminare le righe in base al valore della cella
VBA: come eliminare un foglio se il nome contiene testo specifico
VBA: come eliminare i file

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *