Ištrinkite arba įterpkite eilutes pagal langelio vertę

Ši pamoka parodys, kaip ištrinti arba įterpti eilutes pagal ląstelių vertes.

Ištrinti eilutę pagal langelio vertę

Tai atliks ciklą per diapazoną ir ištrins eilutes, jei A stulpelyje bus parašyta „ištrinti“.

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue ()„Skelbti kintamuosiusUžtemdyti paskutinę eilę, kiek ilgai, pirmą eilęDim Eilutė kaip ilgaiSu „ActiveSheet“„Apibrėžkite pirmąją ir paskutinę eilutesPirma eilutė = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row„Keliaukite eilėmis (iš apačios į viršų)Eilutei = Paskutinė eilutė į pirmą eilutę -1 veiksmasJei .Range ("A" ir eilutė) .Value = "delete" Tada.Range ("A" & Eilutė) .EntireRow.DeletePabaiga JeiKita eilutėPabaiga suPabaiga Sub

Mes turime pradėti ciklą nuo apatinės eilutės, nes ištrynus eilutę, duomenys bus perkelti, o eilutės praleidžiamos, jei kilpos iš viršaus į apačią.

Taip pat atkreipkite dėmesį, kad užuot rankiniu būdu įvedę paskutinę eilutę, mes apskaičiuojame paskutinę naudojamą eilutę.

Ištrinti eilutę - remiantis filtru

Ankstesniame pavyzdyje mes perėjome eilutes, ištrindami kiekvieną kriterijus atitinkančią eilutę. Arba galime naudoti „Excel“ automatinį filtrą, kad filtruotume eilutes pagal tam tikrus kriterijus ir ištrintume matomas eilutes:

12345678910111213141516171819202122232425 Antrinis filtrasAndDeleteRows ()„Skelbti kintamąjį wsDim ws kaip darbalapisNustatykite ws = ActiveSheet„Iš naujo nustatyti esamus filtrusDėl klaidos Tęsti toliauws.ShowAllDataKlaida „GoTo 0“'Taikyti filtrąws.Range ("a1: d100"). Automatinio filtro laukas: = 1, kriterijai1: = "ištrinti"„Ištrinti eilutesApplication.DisplayAlerts = Netiesaws.Range ("a1: d100"). SpecialCells (xlCellTypeVisible). IštrintiApplication.DisplayAlerts = Tiesa'Išvalyti filtrąDėl klaidos Tęsti toliauws.ShowAllDataKlaida „GoTo 0“Pabaiga Sub

Ištrinti eilutę pagal langelio kriterijus

Tai atliks ciklą per diapazoną ir ištrins eilutes, jei A stulpelio langelis atitinka tam tikrus kriterijus (<0):

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue ()„Skelbti kintamuosiusUžtemdyti paskutinę eilę, kiek ilgai, pirmą eilęDim Eilutė kaip ilgaiSu „ActiveSheet“„Apibrėžkite pirmąją ir paskutinę eilutesPirma eilutė = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row„Keliaukite eilėmis (iš apačios į viršų)Eilutei = Paskutinė eilutė į pirmą eilutę -1 veiksmasJei .Range ("A" ir eilutė) .Vertė <0 Tada.Range ("A" & Eilutė) .EntireRow.DeletePabaiga JeiKita eilutėPabaiga suPabaiga Sub

VBA programavimas | Kodo generatorius jums tinka!

Ištrinkite eilutę, jei langelis tuščias

Tai atliks ciklą per diapazoną ir ištrins eilutę, jei A stulpelio langelis tuščias:

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue ()„Skelbti kintamuosiusUžtemdyti paskutinę eilę, kiek ilgai, pirmą eilęDim Eilutė kaip ilgaiSu „ActiveSheet“„Apibrėžkite pirmąją ir paskutinę eilutesPirma eilutė = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row„Keliaukite eilėmis (iš apačios į viršų)Eilutei = Paskutinė eilutė į pirmą eilutę -1 veiksmasJei .Range ("A" ir eilutė) .Value = "" Tada.Range ("A" & Eilutė) .EntireRow.DeletePabaiga JeiKita eilutėPabaiga suPabaiga Sub

Ištrinti tuščią eilutę

Arba, jei norite ištrinti eilutę, jei visa eilutė tuščia (spustelėkite šiek tiek kitokio metodo nuorodą), galite naudoti šį kodą:

1234567891011121314151617181920 Sub DeleteBlankRows ()„Skelbti kintamuosiusUžtemdyti paskutinę eilę, kiek ilgai, pirmą eilęDim Eilutė kaip ilgaiSu „ActiveSheet“„Apibrėžkite pirmąją ir paskutinę eilutesPirma eilutė = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row„Keliaukite eilėmis (iš apačios į viršų)Eilutei = Paskutinė eilutė į pirmą eilutę -1 veiksmasJei WorksheetFunction.CountA (.Rows (Row)) = 0 Tada. Eilutės (eilutė). Visa eilutė. IštrintiPabaiga JeiKita eilutėPabaiga suPabaiga Sub

Ištrinkite eilutę, jei langelyje yra reikšmės

Tai perkelia diapazoną ir ištrina eilutę, jei A stulpelio langelis nėra tuščias:

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue ()„Skelbti kintamuosiusUžtemdyti paskutinę eilę, kiek ilgai, pirmą eilęDim Eilutė kaip ilgaiSu „ActiveSheet“„Apibrėžkite pirmąją ir paskutinę eilutesPirma eilutė = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row„Keliaukite eilėmis (iš apačios į viršų)Eilutei = Paskutinė eilutė į pirmą eilutę -1 veiksmasJei .Range ("A" ir eilutė) .Vertė "" Tada.Range ("A" & Eilutė) .EntireRow.DeletePabaiga JeiKita eilutėPabaiga suPabaiga Sub

Pavargote ieškoti VBA kodo pavyzdžių? Išbandykite „AutoMacro“!

Įterpti eilutę pagal langelio vertę

Tai bus ciklas per diapazoną, įterpiant eilutes, jei tam tikra tos eilutės ląstelė sako „įterpti“:

1234567891011121314151617181920 Sub InsertRowsBasedonCellValue ()„Skelbti kintamuosiusUžtemdyti paskutinę eilę, kiek ilgai, pirmą eilęDim Eilutė kaip ilgaiSu „ActiveSheet“„Apibrėžkite pirmąją ir paskutinę eilutesPirma eilutė = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row„Keliaukite eilėmis (iš apačios į viršų)Eilutei = Paskutinė eilutė į pirmą eilutę -1 veiksmasJei .Range ("A" ir eilutė) .Value = "insert" Tada.Range ("A" ir eilutė) .EntireRow.InsertPabaiga JeiKita eilutėPabaiga suPabaiga Sub
wave wave wave wave wave