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