Een Rij verwijderen met VBA

in Excel kunt u een Rij verwijderen door met de rechtermuisknop op het nummer van de rij te klikken en vervolgens Verwijderen te selecteren. Maar als u rijen wilt verwijderen met behulp van meer geavanceerde methoden, moet u VBA gebruiken. Hiermee kunt u rijen op veel verschillende manieren verwijderen.

Verwijder een specifieke rij

de meest eenvoudige manier om een rij in VBA te verwijderen is door het rijnummer te gebruiken.

Sub deleteSpecificRow()Rows(4).DeleteEnd Sub

Dit zal de vierde rij verwijderen elke keer dat u de macro uitvoert.

meerdere rijen verwijderen

u kunt ook enkele rijen tegelijk verwijderen. In plaats van het rijnummer te selecteren, selecteert u een rijbereik.

Sub deleteMultipleRows()Rows("2:4").DeleteEnd Sub

Het zal rijen 2, 3 en 4 verwijderen.

Verwijder geselecteerde rijen

tot nu toe hebben we macro ‘ s gemaakt die rijen met vaste getallen in de code verwijderden. Laten we deze keer rijen uit een selectie verwijderen. Laten we de volgende code gebruiken.

Sub deleteSelectedRows()Selection.EntireRow.DeleteEnd Sub

lege rijen verwijderen

in dit voorbeeld identificeert Excel welke cellen leeg zijn, selecteert ze en verwijdert de rijen waarin ze aanwezig zijn.

Sub deleteBlankRows()Selection.SpecialCells(xlCellTypeBlanks).SelectSelection.EntireRow.DeleteEnd Sub

Deze macro verwijdert alleen rijen uit de selectie als deze de zin”slechte rij” bevat.

voorzichtig

onthoud dat tekst hoofdlettergevoelig is.

Sub deleteRowswithSelectedText()For Each Cell In Selection If Cell.Value = "Bad Row" Then Rows(Cell.Row).ClearContents End IfNextSelection.SpecialCells(xlCellTypeBlanks).SelectSelection.EntireRow.DeleteEnd Sub

codeanalyse

2. De lus gaat door elk element in de selectie.

3. Excel controleert de werkelijke celwaarde en of de waarde precies “slechte rij”is.

4. Als aan de voorwaarde is voldaan, wist Excel de inhoud van de cel. We kunnen de cel niet verwijderen omdat de celpositie zal veranderen en sommige “slechte rijen” kunnen blijven.

7. Wanneer alle” slechte rijen ” zijn gewist, selecteert Excel deze cellen.

8. Verwijdert vervolgens rijen van deze cellen.

Als u ook de rijen wilt verwijderen die uit deze zin bestaan, en niet alleen de exacte overeenkomst, gebruik dan de InStr-functie. Deze functie retourneert de positie van het eerste voorkomen van de zin.

Wijzig

Cell.Value = "Bad Row"

naar

InStr(Cell, "Bad Row") > 0

we hebben vier verschillende voorbeelden in ons werkblad. Elk van hen geeft een positie terug.

  • “Bad Row”geeft 1
  • ” Good Row”geeft 0
  • ” 1 Bad Row”geeft 3
  • ” Bad Row !”geeft 1

terug dat betekent dat alle rijen behalve “goede rij” verwijderd zullen worden.

verwijder rij als het celtype een tekenreeks is

in dit voorbeeld zullen we een Rij verwijderen als het celtype een tekenreeks is.

op het eerste gezicht lijken de cellen A3, A4 en A5 van hetzelfde type te zijn. Maar als je kijkt naar wat er achter de schermen gebeurt (Ctrl + `) zul je zien dat elk van hen anders is.

Sub deleteifString()Selection.SpecialCells(xlCellTypeConstants, 2).SelectSelection.EntireRow.DeleteEnd Sub

Op de tweede regel staat de volgende code: xlCellTypeConstants. Het betekent dat we op zoek zijn naar constanten. Nummer 2 betekent het tweede type, dat tekst is.

Excel kiest alleen waarden van type tekst.

het resultaat.

even/oneven rijen verwijderen

laten we nu alleen die Rijen verwijderen die even zijn.

Sub deleteEven()For Each Cell In Selection If Cell.Row Mod 2 = 0 Then Rows(Cell.Row).ClearContents End IfNextSelection.SpecialCells(xlCellTypeBlanks).SelectSelection.EntireRow.DeleteEnd Sub

de code is zeer vergelijkbaar met die van het vorige voorbeeld. Er is maar één verschil.

cel.Rij Mod 2 = 0

Dit betekent, als de rest na deling 0 is (voor getallen: 2, 4, 6, 8, …) dan is het getal even, als het 1 is dan is het een oneven getal (1, 3, 5, 6, …).

Spreadsheet and Python enthusiast.

Post Views: 72,354

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.