In deze tutorial worden verschillende manieren getoond om rijen en kolommen in Excel te verwijderen met behulp van VBA.
Ele rij of kolom verwijderen
Om een hele rij in VBA te verwijderen gebruikt u deze regel code:
Rows(1).Delete
Merk op dat we de methode Delete gebruiken om een rij te verwijderen.
In plaats van naar het rijenobject te verwijzen, kunt u naar rijen verwijzen op basis van hun Range-object met EntireRow:
Range("a1").EntireRow.Delete
Ook om een hele kolom te verwijderen, gebruikt u deze regels code:
Columns(1).Delete
Range("a1").EntireColumn.Delete
Meerdere rijen of kolommen verwijderen
Met dezelfde logica kunt u ook meerdere rijen tegelijk verwijderen:
Rows("1:3").Delete
of kolommen:
Columns("A:C").Delete
Merk op dat we hier verwijzen naar de specifieke rij- en kolomnummers/letters, omgeven door aanhalingstekens.
U kunt natuurlijk ook verwijzen naar de EntireRow van een bereik:
Range("a1:a10").EntireRow.Delete
Note: De voorbeelden hieronder demonstreren alleen het verwijderen van rijen, maar zoals u hierboven kunt zien, is de syntaxis vrijwel identiek aan het verwijderen van kolommen.
Lege/lege rijen verwijderen
Dit voorbeeld verwijdert een rij als de hele rij leeg is:
Sub DeleteRows_EntireRowBlank()Dim cell As RangeFor Each cell In Range("b2:b20") If Application.WorksheetFunction.CountA(cell.EntireRow) = 0 Then cell.EntireRow.Delete End IfNext cellEnd Sub
Hierbij wordt gebruikgemaakt van de Excel-werkbladfunctie: COUNTA.
Verwijder rij als cel leeg is
Dit zal een rij verwijderen als specifieke kolom in die rij leeg is (in dit geval kolom B):
Range("b3:b20").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Verwijder rij op basis van celwaarde
Dit zal lus door een bereik, en verwijder rijen als een bepaalde celwaarde in die rij zegt “verwijderen”.
Sub DeleteRowswithSpecificValue()Dim cell As RangeFor Each cell In Range("b2:b20") If cell.Value = "delete" Then cell.EntireRow.Delete End IfNext cellEnd Sub
Meer voorbeelden van het verwijderen van rijen en kolommen
Verwijder dubbele rijen
Deze code verwijdert alle dubbele rijen in een bereik:
Range("b2:c100").RemoveDuplicates Columns:=2
Merk op dat we Columns:=2 hebben ingesteld. Dit vertelt VBA om zowel de eerste twee kolommen van gegevens te controleren bij het overwegen of rijen duplicaten zijn. Een duplicaat wordt alleen gevonden als beide kolommen dubbele waarden hebben.
Als we dit op 1 hadden gezet, zou alleen de eerste rij zijn gecontroleerd op dubbele waarden.
Tabelrijen verwijderen
Deze code verwijdert de tweede rij in een tabel door te verwijzen naar ListObjects.
ThisWorkbook.Sheets("Sheet1").ListObjects("list1").ListRows(2).Delete
Gefilterde rijen verwijderen
Om alleen rijen te verwijderen die zichtbaar zijn na filtering:
Range("b3:b20").SpecialCells(xlCellTypeVisible).EntireRow.Delete
Rijen in bereik verwijderen
Deze code zal alle rijen in het bereik verwijderen:
Range("a1:a10").EntireRow.Delete
Delete Selected Rows
Deze code zal alle geselecteerde rijen verwijderen:
Selection.EntireRow.Delete
Delete Last Row
Dit zal de laatst gebruikte rij in kolom B verwijderen:
Cells(Rows.Count, 2).End(xlUp).EntireRow.Delete
Door 2 te veranderen in 1, kunt u de laatst gebruikte rij in kolom A verwijderen, enz.
Cells(Rows.Count, 1).End(xlUp).EntireRow.Delete
Verwijder kolommen op nummer
Om een kolom op nummer te verwijderen, gebruikt u een code als deze:
Columns (2).Delete