Slett eller sett inn rader basert på celleverdi

Denne opplæringen vil demonstrere hvordan du sletter eller setter inn rader basert på celleverdier.

Slett rad basert på celleverdi

Dette vil gå gjennom et område og slette rader hvis kolonne A sier "slett".

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue ()'Erklær variablerDim LastRow så lenge, FirstRow så lengeDim Row As LongMed ActiveSheet'Definer første og siste radFirstRow = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Sløyfe gjennom rader (bunn til topp)For rad = LastRow til FirstRow Trinn -1Hvis .Range ("A" og rad) .Value = "delete" Deretter.Range ("A" og rad) .EntireRow.DeleteSlutt omNeste radSlutt medSlutt Sub

Vi må starte sløyfen med den nederste raden, fordi sletting av en rad vil flytte dataene, hoppe over rader hvis du går fra topp til bunn.

Legg også merke til at i stedet for å skrive inn manuelt i den siste raden, beregner vi den siste brukte raden.

Slett rad - Basert på filter

I det forrige eksemplet gikk vi gjennom radene og slettet hver rad som oppfyller kriteriene. Alternativt kan vi bruke Excel's AutoFilter til å filtrere rader basert på noen kriterier og deretter slette de synlige radene:

12345678910111213141516171819202122232425 Sub FilterAndDeleteRows ()'Erklær ws -variabelDim ws Som regnearkSett ws = ActiveSheet'Tilbakestill eksisterende filtreVed feil Fortsett nestews.ShowAllDataVed feil GoTo 0'Bruk filterws.Range ("a1: d100"). Autofilterfelt: = 1, Kriterier1: = "slett"'Slett raderApplication.DisplayAlerts = Falskws.Range ("a1: d100"). SpecialCells (xlCellTypeVisible) .SlettApplication.DisplayAlerts = True'Fjern filteretVed feil Fortsett nestews.ShowAllDataVed feil GoTo 0Slutt Sub

Slett rad basert på cellekriterier

Dette går gjennom et område og sletter rader hvis cellen i kolonne A oppfyller visse kriterier (<0):

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue ()'Erklær variablerDim LastRow så lenge, FirstRow så lengeDim Row As LongMed ActiveSheet'Definer første og siste radFirstRow = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Sløyfe gjennom rader (bunn til topp)For rad = LastRow til FirstRow Trinn -1Hvis .Range ("A" og rad) .Værdi <0 Da.Range ("A" og rad) .EntireRow.DeleteSlutt omNeste radSlutt medSlutt Sub

VBA -programmering | Kodegenerator fungerer for deg!

Slett rad hvis cellen er tom

Dette vil gå gjennom et område og slette en rad hvis en celle i kolonne A er tom:

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue ()'Erklær variablerDim LastRow så lenge, FirstRow så lengeDim Row As LongMed ActiveSheet'Definer første og siste radFirstRow = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Sløyfe gjennom rader (bunn til topp)For rad = LastRow til FirstRow Trinn -1Hvis .Range ("A" og rad) .Value = "" Da.Range ("A" og rad) .EntireRow.DeleteSlutt omNeste radSlutt medSlutt Sub

Slett blank rad

Alternativt, hvis du vil slette en rad hvis hele raden er tom (Klikk på lenken for en litt annen metode), kan du bruke denne koden:

1234567891011121314151617181920 Sub DeleteBlankRows ()'Erklær variablerDim LastRow så lenge, FirstRow så lengeDim Row As LongMed ActiveSheet'Definer første og siste radFirstRow = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Sløyfe gjennom rader (bunn til topp)For rad = LastRow til FirstRow Trinn -1Hvis WorksheetFunction.CountA (.Rows (Row)) = 0 Da.Rader (rad) .EntireRow.DeleteSlutt omNeste radSlutt medSlutt Sub

Slett rad hvis cellen inneholder verdi

Dette vil gå gjennom et område og slette en rad hvis cellen i kolonne A ikke er tom:

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue ()'Erklær variablerDim LastRow så lenge, FirstRow så lengeDim Row As LongMed ActiveSheet'Definer første og siste radFirstRow = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Sløyfe gjennom rader (bunn til topp)For rad = LastRow til FirstRow Trinn -1Hvis .Range ("A" og rad) .Værdi "" Da.Range ("A" og rad) .EntireRow.DeleteSlutt omNeste radSlutt medSlutt Sub

Lei av å søke etter eksempler på VBA -kode? Prøv AutoMacro!

Sett inn rad basert på celleverdi

Dette vil gå gjennom et område og sette inn rader hvis en bestemt celle i den raden sier "sett inn":

1234567891011121314151617181920 Sub InsertRowsBasedonCellValue ()'Erklær variablerDim LastRow så lenge, FirstRow så lengeDim Row As LongMed ActiveSheet'Definer første og siste radFirstRow = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Sløyfe gjennom rader (bunn til topp)For rad = LastRow til FirstRow Trinn -1Hvis .Range ("A" og rad) .Value = "insert" Deretter.Range ("A" og rad) .EntireRow.InsertSlutt omNeste radSlutt medSlutt Sub
wave wave wave wave wave