Radera eller infoga rader baserat på cellvärde

Denna handledning visar hur du tar bort eller infogar rader baserat på cellvärden.

Radera rad baserat på cellvärde

Detta kommer att gå igenom ett intervall och radera rader om kolumn A säger "ta bort".

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue ()'Deklarera variablerDim LastRow As Long, FirstRow As LongDim Row As LongMed ActiveSheet'Definiera första och sista radenFirstRow = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Loop Through Rows (Bottom to Top)För rad = LastRow till FirstRow Steg -1Om .Range ("A" & rad) .Value = "delete" Då.Range ("A" och rad) .EntireRow.DeleteAvsluta omNästa radSluta medAvsluta Sub

Vi måste starta slingan med den nedre raden eftersom att radera en rad kommer att flytta data, hoppa över rader om du går från topp till botten.

Observera också att istället för att manuellt skriva in den sista raden beräknar vi den senast använda raden.

Radera rad - baserat på filter

I föregående exempel gick vi igenom raderna och raderade varje rad som uppfyller kriterierna. Alternativt kan vi använda Excel AutoFilter för att filtrera rader baserat på vissa kriterier och sedan radera de synliga raderna:

12345678910111213141516171819202122232425 Sub FilterAndDeleteRows ()'Deklarera ws -variabelDim ws Som arbetsbladAnge ws = ActiveSheet'Återställ befintliga filterVid fel Återuppta nästaws.ShowAllDataVid fel GoTo 0'Använd filterws.Range ("a1: d100"). Autofilterfält: = 1, Kriterier1: = "ta bort"'Radera raderApplication.DisplayAlerts = Falsktws.Range ("a1: d100"). SpecialCells (xlCellTypeVisible) .DeleteApplication.DisplayAlerts = True'Rensa filtretVid fel Återuppta nästaws.ShowAllDataVid fel GoTo 0Avsluta Sub

Ta bort rad baserat på cellkriterier

Detta går igenom ett intervall och raderar rader om cellen i kolumn A uppfyller vissa kriterier (<0):

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue ()'Deklarera variablerDim LastRow As Long, FirstRow As LongDim Row As LongMed ActiveSheet'Definiera första och sista radenFirstRow = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Loop Through Rows (Bottom to Top)För rad = LastRow till FirstRow Steg -1Om .Range ("A" & rad) .Värde <0 Då.Range ("A" och rad) .EntireRow.DeleteAvsluta omNästa radSluta medAvsluta Sub

VBA -programmering | Kodgenerator fungerar för dig!

Ta bort rad om cellen är tom

Detta kommer att gå igenom ett område och radera en rad om en cell i kolumn A är tom:

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue ()'Deklarera variablerDim LastRow As Long, FirstRow As LongDim Row As LongMed ActiveSheet'Definiera första och sista radenFirstRow = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Loop Through Rows (Bottom to Top)För rad = LastRow till FirstRow Steg -1Om .Range ("A" & rad) .Value = "" Då.Range ("A" och rad) .EntireRow.DeleteAvsluta omNästa radSluta medAvsluta Sub

Ta bort tom rad

Alternativt, om du vill radera en rad om hela raden är tom (Klicka på länken för en något annorlunda metod), kan du använda den här koden:

1234567891011121314151617181920 Sub DeleteBlankRows ()'Deklarera variablerDim LastRow As Long, FirstRow As LongDim Row As LongMed ActiveSheet'Definiera första och sista radenFirstRow = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Loop Through Rows (Bottom to Top)För rad = LastRow till FirstRow Steg -1Om WorksheetFunction.CountA (.Rows (Row)) = 0 Då.Rader (rad) .EntireRow.DeleteAvsluta omNästa radSluta medAvsluta Sub

Ta bort rad om cellen innehåller värde

Detta kommer att gå igenom ett område och radera en rad om cellen i kolumn A inte är tom:

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue ()'Deklarera variablerDim LastRow As Long, FirstRow As LongDim Row As LongMed ActiveSheet'Definiera första och sista radenFirstRow = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Loop Through Rows (Bottom to Top)För rad = LastRow till FirstRow Steg -1Om .Range ("A" & rad) .Värde "" Då.Range ("A" & rad) .EntireRow.DeleteAvsluta omNästa radSluta medAvsluta Sub

Trött på att söka efter exempel på VBA -kod? Prova AutoMacro!

Infoga rad baserat på cellvärde

Detta kommer att gå igenom ett område och infoga rader om en viss cell i den raden säger "infoga":

1234567891011121314151617181920 Sub InsertRowsBasedonCellValue ()'Deklarera variablerDim LastRow As Long, FirstRow As LongDim Row As LongMed ActiveSheet'Definiera första och sista radenFirstRow = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Loop Through Rows (Bottom to Top)För rad = LastRow till FirstRow Steg -1Om .Range ("A" & rad) .Value = "insert" Då.Range ("A" & rad) .EntireRow.InsertAvsluta omNästa radSluta medAvsluta Sub
wave wave wave wave wave