Hoe lege regels in vba te verwijderen (met voorbeelden)
U kunt de volgende methoden in VBA gebruiken om lege regels te verwijderen:
Methode 1: lege rijen in een specifiek bereik verwijderen
Sub DeleteEmptyRowsInRange()
Sheets(" Sheet1 ").Select
Range(" A1:B10 ").Select
Selection.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
Deze specifieke macro verwijdert alle lege rijen uit het bereik A1:B10 van Sheet1 .
Methode 2: lege rijen in het hele blad verwijderen
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
Deze specifieke macro verwijdert alle lege rijen van het gehele actieve blad.
De volgende voorbeelden laten zien hoe u elke methode in de praktijk kunt gebruiken.
Voorbeeld 1: Verwijder lege regels in een specifiek bereik
Stel dat we de volgende gegevensset in Excel hebben die informatie bevat over verschillende basketbalspelers:
We kunnen de volgende macro maken om alle lege regels uit het bereik A1:B10 op dit blad te verwijderen:
Sub DeleteEmptyRowsInRange()
Sheets(" Sheet1 ").Select
Range(" A1:B10 ").Select
Selection.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
Zodra we deze macro uitvoeren, ontvangen we de volgende uitvoer:
Houd er rekening mee dat alle lege regels zijn verwijderd uit het bereik dat we hebben opgegeven.
Voorbeeld 2: lege rijen in een heel blad verwijderen
Stel dat we de volgende gegevensset in Excel hebben die informatie bevat over verschillende basketbalspelers:
We kunnen de volgende macro maken om alle lege regels van het hele blad te verwijderen:
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
Zodra we deze macro uitvoeren, ontvangen we de volgende uitvoer:
Houd er rekening mee dat alle lege regels van het hele blad zijn verwijderd.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in VBA kunt uitvoeren:
VBA: rijen verwijderen op basis van celwaarde
VBA: een blad verwijderen als de naam specifieke tekst bevat
VBA: hoe bestanden verwijderen