Š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 |