Rijen verwijderen of invoegen op basis van celwaarde

Deze zelfstudie laat zien hoe u rijen verwijdert of invoegt op basis van celwaarden.

Rij verwijderen op basis van celwaarde

Dit doorloopt een bereik en verwijdert rijen als kolom A "verwijderen" zegt.

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue()'Verklaar variabelen'Dim LastRow zo lang, FirstRow zo langDim rij zo langMet ActiveSheet'Definieer eerste en laatste rijen'Eerste rij = 1LastRow = .UsedRange.Rows(.UsedRange.Rows.Count).Rij'Loop door rijen (van onder naar boven)Voor rij = laatste rij naar eerste rij Stap -1If .Range("A" & Row).Value = "delete" Dan.Bereik("A" & rij).Gehele rij.VerwijderenStop alsVolgende rijEindigt metEinde sub

We moeten de lus beginnen met de onderste rij, omdat het verwijderen van een rij de gegevens verschuift en rijen overslaat als u van boven naar beneden loopt.

Merk ook op dat in plaats van handmatig de laatste rij in te voeren, we de laatst gebruikte rij berekenen.

Rij verwijderen - Gebaseerd op filter

In het vorige voorbeeld liepen we door de rijen en verwijderden we elke rij die aan de criteria voldoet. Als alternatief kunnen we Excel's AutoFilter gebruiken om rijen te filteren op basis van enkele criteria en vervolgens de zichtbare rijen te verwijderen:

12345678910111213141516171819202122232425 Sub FilterAndDeleteRows()'Declareer ws variabele'Dim ws als werkbladStel ws = ActiveSheet in'Bestaande filters resetten'Bij fout Hervatten volgendews.ShowAllDataBij fout Ga naar 0'Voeg filter toews.Range("a1:d100").AutoFilter Veld:=1, Criteria1:="verwijderen"'Verwijder rijen'Application.DisplayAlerts = Falsews.Range("a1:d100").SpecialCells(xlCellTypeVisible).VerwijderenApplication.DisplayAlerts = True'Wis filter'Bij fout Hervatten volgendews.ShowAllDataBij fout Ga naar 0Einde sub

Rij verwijderen op basis van celcriteria

Dit doorloopt een bereik en verwijdert rijen als de cel in kolom A aan bepaalde criteria voldoet (< 0):

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue()'Verklaar variabelen'Dim LastRow zo lang, FirstRow zo langDim rij zo langMet ActiveSheet'Definieer eerste en laatste rijen'Eerste rij = 1LastRow = .UsedRange.Rows(.UsedRange.Rows.Count).Rij'Loop door rijen (van onder naar boven)Voor rij = laatste rij naar eerste rij Stap -1Als .Bereik ("A" & Rij). Waarde < 0 Dan.Bereik("A" & rij).Gehele rij.VerwijderenStop alsVolgende rijEindigt metEinde sub

VBA-programmering | Code Generator werkt voor u!

Rij verwijderen als cel leeg is

Dit doorloopt een bereik en verwijdert een rij als een cel in kolom A leeg is:

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue()'Verklaar variabelen'Dim LastRow zo lang, FirstRow zo langDim rij zo langMet ActiveSheet'Definieer eerste en laatste rijen'Eerste rij = 1LastRow = .UsedRange.Rows(.UsedRange.Rows.Count).Rij'Loop door rijen (van onder naar boven)Voor rij = laatste rij naar eerste rij Stap -1If .Range("A" & Row).Value = "" Dan.Bereik("A" & rij).Gehele rij.VerwijderenStop alsVolgende rijEindigt metEinde sub

Lege rij verwijderen

Als alternatief, als u een rij wilt verwijderen als de hele rij leeg is (klik op de link voor een iets andere methode), kunt u deze code gebruiken:

1234567891011121314151617181920 Sub DeleteBlankRows()'Verklaar variabelen'Dim LastRow zo lang, FirstRow zo langDim rij zo langMet ActiveSheet'Definieer eerste en laatste rijen'Eerste rij = 1LastRow = .UsedRange.Rows(.UsedRange.Rows.Count).Rij'Loop door rijen (van onder naar boven)Voor rij = laatste rij naar eerste rij Stap -1Als WorksheetFunction.CountA(.Rows(Rij)) = 0 Dan.Rijen(Rij).GeheleRij.VerwijderenStop alsVolgende rijEindigt metEinde sub

Rij verwijderen als cel waarde bevat

Dit doorloopt een bereik en verwijdert een rij als de cel in kolom A niet leeg is:

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue()'Verklaar variabelen'Dim LastRow zo lang, FirstRow zo langDim rij zo langMet ActiveSheet'Definieer eerste en laatste rijen'Eerste rij = 1LastRow = .UsedRange.Rows(.UsedRange.Rows.Count).Rij'Loop door rijen (van onder naar boven)Voor rij = laatste rij naar eerste rij Stap -1Als .Bereik ("A" & Rij). Waarde "" Dan.Bereik("A" & rij).Volledige rij.VerwijderenStop alsVolgende rijEindigt metEinde sub

Moe van het zoeken naar voorbeelden van VBA-codes? Probeer AutoMacro!

Rij invoegen op basis van celwaarde

Dit doorloopt een bereik en voegt rijen in als een bepaalde cel in die rij "insert" zegt:

1234567891011121314151617181920 Sub InsertRowsBasedonCellValue()'Verklaar variabelen'Dim LastRow zo lang, FirstRow zo langDim rij zo langMet ActiveSheet'Definieer eerste en laatste rijen'Eerste rij = 1LastRow = .UsedRange.Rows(.UsedRange.Rows.Count).Rij'Loop door rijen (van onder naar boven)Voor rij = laatste rij naar eerste rij Stap -1If .Range("A" & Row).Value = "insert" Dan.Bereik("A" & rij).Gehele rij.InvoegenStop alsVolgende rijEindigt metEinde sub
wave wave wave wave wave