Brisanje ali vstavljanje vrstic na podlagi vrednosti celice

Ta vadnica bo pokazala, kako izbrisati ali vstaviti vrstice na podlagi vrednosti celic.

Izbriši vrstico glede na vrednost celice

S tem boste prešli skozi obseg in izbrisali vrstice, če stolpec A pravi »izbriši«.

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue ()"Razglasite spremenljivkeZatemni LastRow As Long, FirstRow As LongDim Row As LongZ ActiveSheet„Določite prvo in zadnjo vrsticoFirstRow = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Loop Through Rows (Od spodaj navzgor)Za vrstico = zadnja vrstica do prve vrstice Korak -1Če .Range ("A" & Row) .Value = "delete" Potem.Range ("A" & Row) .EntireRow.DeleteKonec ČeNaslednja vrsticaKončaj sEnd Sub

Zanko moramo začeti z spodnjo vrstico, ker bo brisanje vrstice premaknilo podatke in preskočilo vrstice, če zankate od zgoraj navzdol.

Upoštevajte tudi, da namesto ročnega vnosa v zadnjo vrstico izračunamo zadnjo uporabljeno vrstico.

Izbriši vrstico - na podlagi filtra

V prejšnjem primeru smo se vrteli skozi vrstice in izbrisali vsako vrstico, ki ustreza merilom. Druga možnost je, da lahko z Excelovim samodejnim filtrom filtriramo vrstice na podlagi nekaterih meril in nato izbrišemo vidne vrstice:

12345678910111213141516171819202122232425 Sub FilterAndDeleteRows ()'Razglasite spremenljivko wsZatemni kot delovni listNastavite ws = ActiveSheet'Ponastavi obstoječe filtreOn Napaka Nadaljuj Naprejws.ShowAllDataPri napaki Pojdi na 0'Uporabi filterws.Range ("a1: d100"). Polje samodejnega filtriranja: = 1, Merila1: = "izbriši"'Izbriši vrsticeApplication.DisplayAlerts = Napačnows.Range ("a1: d100"). SpecialCells (xlCellTypeVisible).Application.DisplayAlerts = Res'Počisti filterOn Napaka Nadaljuj Naprejws.ShowAllDataPri napaki Pojdi na 0End Sub

Izbriši vrstico na podlagi celičnih meril

S tem se bo vrtel skozi obseg in izbrisal vrstice, če celica v stolpcu A izpolnjuje določena merila (<0):

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue ()"Razglasite spremenljivkeZatemni LastRow As Long, FirstRow As LongDim Row As LongZ ActiveSheet„Določite prvo in zadnjo vrsticoFirstRow = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Loop Through Rows (Od spodaj navzgor)Za vrstico = zadnja vrstica do prve vrstice Korak -1Če .Range ("A" & Row) .Value <0 Potem.Range ("A" & Row) .EntireRow.DeleteKonec ČeNaslednja vrsticaKončaj sEnd Sub

Programiranje VBA | Generator kod deluje za vas!

Izbriši vrstico, če je celica prazna

S tem boste prešli skozi obseg in izbrisali vrstico, če je celica v stolpcu A prazna:

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue ()"Razglasite spremenljivkeZatemni LastRow As Long, FirstRow As LongDim Row As LongZ ActiveSheet„Določite prvo in zadnjo vrsticoFirstRow = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Loop Through Rows (Od spodaj navzgor)Za vrstico = zadnja vrstica do prve vrstice Korak -1Če .Range ("A" & Row) .Value = "" Potem.Range ("A" & Row) .EntireRow.DeleteKonec ČeNaslednja vrsticaKončaj sEnd Sub

Izbriši prazno vrstico

Druga možnost je, da želite izbrisati vrstico, če je celotna vrstica prazna (kliknite povezavo za nekoliko drugačen način), lahko uporabite to kodo:

1234567891011121314151617181920 Sub DeleteBlankRows ()"Razglasite spremenljivkeZatemni LastRow As Long, FirstRow As LongDim Row As LongZ ActiveSheet„Določite prvo in zadnjo vrsticoFirstRow = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Loop Through Rows (Od spodaj navzgor)Za vrstico = zadnja vrstica do prve vrstice Korak -1Če je WorksheetFunction.CountA (.Rows (Row)) = 0 Potem.Rows (Row) .EntireRow.DeleteKonec ČeNaslednja vrsticaKončaj sEnd Sub

Izbriši vrstico, če celica vsebuje vrednost

S tem boste prešli skozi obseg in izbrisali vrstico, če celica v stolpcu A ni prazna:

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue ()"Razglasite spremenljivkeZatemni LastRow As Long, FirstRow As LongDim Row As LongZ ActiveSheet„Določite prvo in zadnjo vrsticoFirstRow = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Loop Through Rows (Od spodaj navzgor)Za vrstico = zadnja vrstica do prve vrstice Korak -1Če .Range ("A" & Row) .Value "" Potem.Range ("A" & Row) .EntireRow.DeleteKonec ČeNaslednja vrsticaKončaj sEnd Sub

Utrujen od iskanja primerov kode VBA? Preizkusite AutoMacro!

Vstavi vrstico glede na vrednost celice

To se bo vrtelo skozi obseg in vstavljalo vrstice, če določena celica v tej vrstici pravi »vstavi«:

1234567891011121314151617181920 Sub InsertRowsBasedonCellValue ()"Razglasite spremenljivkeZatemni LastRow As Long, FirstRow As LongDim Row As LongZ ActiveSheet„Določite prvo in zadnjo vrsticoFirstRow = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Loop Through Rows (Od spodaj navzgor)Za vrstico = zadnja vrstica do prve vrstice Korak -1Če .Range ("A" & Row) .Value = "insert" Potem.Range ("A" & Row) .EntireRow.InsertKonec ČeNaslednja vrsticaKončaj sEnd Sub
wave wave wave wave wave