Brisanje ili umetanje redaka na temelju vrijednosti ćelije

Ovaj će vodič pokazati kako izbrisati ili umetnuti retke na temelju vrijednosti ćelije.

Brisanje retka na temelju vrijednosti ćelije

Ovo će proći kroz raspon i izbrisati retke ako stupac A kaže "obriši".

1234567891011121314151617181920 PodizbrišiRowsBasedonCellValue ()'Deklarirajte varijableDim LastRow As Long, FirstRow As LongDim Row As LongUz ActiveSheet'Definirajte prvi i zadnji redPrvi red = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Petlje kroz redove (odozdo prema gore)Za red = LastRow do FirstRow Korak -1Ako .Range ("A" & Row) .Value = "delete" Zatim.Range ("A" & Row) .EntireRow.DeleteZavrši akoSljedeći redZavrši sKraj podm

Moramo započeti petlju s donjim redom jer će brisanje retka pomaknuti podatke, preskačući retke ako petlju vršite prema dolje.

Također, imajte na umu da umjesto ručnog unosa u zadnji red, izračunavamo zadnji upotrijebljeni redak.

Izbriši redak - na temelju filtra

U prethodnom primjeru smo petljali kroz retke, brišući svaki redak koji zadovoljava kriterije. Alternativno, možemo koristiti Excelov autofilter za filtriranje redaka na temelju nekih kriterija, a zatim izbrisati vidljive retke:

12345678910111213141516171819202122232425 PodfilterAndDeleteRows ()'Proglasi ws varijablomZatamni kao radni listPostavite ws = ActiveSheet'Poništi postojeće filtreUključeno Slijedi nastavak greškews.ShowAllDataUključeno Greška Idi na 0'Primijeni filtarws.Range ("a1: d100"). Polje automatskog filtriranja: = 1, Kriterij1: = "brisanje"'Izbriši retkeApplication.DisplayAlerts = Netačnows.Range ("a1: d100"). SpecialCells (xlCellTypeVisible) .BrisatiApplication.DisplayAlerts = Istina'Očisti filtarUključeno Slijedi nastavak greškews.ShowAllDataUključeno Greška Idi na 0Kraj podm

Brisanje retka na temelju ćelijskih kriterija

Ovo će se pomicati kroz raspon i brisati retke ako ćelija u stupcu A zadovoljava određene kriterije (<0):

1234567891011121314151617181920 PodizbrišiRowsBasedonCellValue ()'Deklarirajte varijableDim LastRow As Long, FirstRow As LongDim Row As LongUz ActiveSheet'Definirajte prvi i zadnji redPrvi red = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Petlje kroz redove (odozdo prema gore)Za red = LastRow do FirstRow Korak -1Ako .Range ("A" & Red) .Vrijednost <0 Tada.Range ("A" & Row) .EntireRow.DeleteZavrši akoSljedeći redZavrši sKraj podm

VBA programiranje | Generator koda radi za vas!

Izbriši redak ako je ćelija prazna

Ovo će se kretati kroz raspon i brisati redak ako je ćelija u stupcu A prazna:

1234567891011121314151617181920 PodizbrišiRowsBasedonCellValue ()'Deklarirajte varijableDim LastRow As Long, FirstRow As LongDim Row As LongUz ActiveSheet'Definirajte prvi i zadnji redPrvi red = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Petlje kroz redove (odozdo prema gore)Za red = LastRow do FirstRow Korak -1Ako .Range ("A" & Row) .Value = "" Zatim.Range ("A" & Row) .EntireRow.DeleteZavrši akoSljedeći redZavrši sKraj podm

Brisanje praznog retka

Alternativno, ako želite izbrisati redak ako je cijeli redak prazan (kliknite vezu za malo drugačiju metodu), možete upotrijebiti ovaj kod:

1234567891011121314151617181920 Sub DeleteBlankRows ()'Deklarirajte varijableDim LastRow As Long, FirstRow As LongDim Row As LongUz ActiveSheet'Definirajte prvi i zadnji redPrvi red = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Petlje kroz redove (odozdo prema gore)Za red = zadnji red do prvog reda korak -1Ako je WorksheetFunction.CountA (.Rows (Row)) = 0 Tada.Redovi (Red) .CijeliRed.BrisanjeZavrši akoSljedeći redZavrši sKraj podm

Izbriši redak ako ćelija sadrži vrijednost

Ovo će se kretati kroz raspon i brisati redak ako ćelija u stupcu A nije prazna:

1234567891011121314151617181920 PodizbrišiRowsBasedonCellValue ()'Deklarirajte varijableDim LastRow As Long, FirstRow As LongDim Row As LongUz ActiveSheet'Definirajte prvi i zadnji redPrvi red = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Petlje kroz redove (odozdo prema gore)Za red = zadnji red do prvog reda korak -1Ako .Range ("A" & Red) .Vrijednost "" Zatim.Range ("A" & Row) .EntireRow.DeleteZavrši akoSljedeći redZavrši sKraj podm

Umorni ste od traženja primjera VBA koda? Isprobajte AutoMacro!

Umetnite redak na temelju vrijednosti ćelije

Ovo će se kretati kroz raspon, umetajući retke ako određena ćelija u tom retku kaže "umetni":

1234567891011121314151617181920 Sub InsertRowsBasedonCellValue ()'Deklarirajte varijableDim LastRow As Long, FirstRow As LongDim Row As LongUz ActiveSheet'Definirajte prvi i zadnji redPrvi red = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Petlje kroz redove (odozdo prema gore)Za red = zadnji red do prvog reda korak -1Ako .Range ("A" & Row) .Value = "insert" Zatim.Range ("A" & Row) .EntireRow.InsertZavrši akoSljedeći redZavrši sKraj podm
wave wave wave wave wave