Kuidas Excelis tervet rida kustutada VBA abil (näited)

Ridade lisamine ja kustutamine on osa igapäevastest tavalistest ülesannetest Exceli kasutamisel.

Kuigi saate seda hõlpsalt töölehelt ise teha, soovite mõnikord Exceli ridade kustutamiseks kasutada VBA marsruuti. Need võivad olla konkreetse rea, valiku mitme rea kustutamine, alternatiivsete ridade või teatud väärtusega ridade kustutamine.

Selles õpetuses näitan teile, kuidas Excelis ridasid kustutada VBA abil (mitu stsenaariumi).

Nii et alustame!

Kustutage terve rida VBA abil

Excelis terve rea kustutamiseks VBA abil peate kasutama meetodit EntireRow.Delete.

Näiteks kui soovite töölehe kogu esimese rea kustutada, võite kasutada järgmist koodi:

Sub DeleteEntireRow () Rid (1) .EntireRow.Delete End Sub

Ülaltoodud kood määrab kõigepealt kustutamist vajava rea ​​(mida tehakse sulgudes oleva numbri määramisega) ja seejärel kasutab selle kustutamiseks meetodit EntireRow.Delete.

Samuti saate mitu rida kustutada, määrates need read koodis.

Näiteks kustutab allolev kood töölehe ridade 1, 5 ja 9:

Sub DeleteEntireRow () Rid (9) .EntireRow.Delete Rids (5) .EntireRow.Delete Rids (1) .EntireRow.Delete End Sub

Ülaltoodud kood kasutab sama loogikat, kus see määrab ridade numbrid ja Excel kustutab need read ükshaaval.

TÄHTIS: kui kustutate ridu millegi sarnasega ülaltoodud koodiga, ärge unustage kustutamist alustada alt ja seejärel ülespoole. Näiteks kui alustate ülaosast ja kustutate kõigepealt rea 1, nihutatakse kõik selle all olevad read ühe rea võrra ülespoole ja nummerdamine on välja lülitatud (kuna 5. reast saab 4. rida jne)

Kustutage kõik valiku read

Kui soovite kustutada kõik valitud lahtrite vahemiku read, saate kasutada allolevat VBA makrokoodi.

Sub DeleteEntireRow () Selection.EntireRow.Delete End Sub

Ülaltoodud kood kehtib kogu valiku EntireRow.Delete meetodi kohta.

Kustuta alternatiivsed read (või Kustuta iga kolmas/neljas/nda rida)

Mõnikord võite saada andmete väljavõtte, kus iga teine ​​rida (või kolmas, neljas või n -nda rida) on kasutu ja tuleb kustutada.

Töötasin varem finantsandmetega, kus iga teine ​​rida oli tühi ja tuli kustutada.

See on seda tüüpi stsenaarium, kus VBA tõesti särab.

Allpool on VBA -kood, mis läbib kõik valiku read ja kustutab iga teise rea:

Sub DeleteAlternateRows () RCount = Selection.Rows.Count For i = RCount To 1 Step -2 Selection.Rows (i) .EntireRow.Delete Next i End Sub

Las ma selgitan, kuidas see VBA kood töötab.

Esiteks kasutasin muutujat RCount valiku ridade koguarvu saamiseks.

Siis olen selle käivitamiseks kasutanud silmust For Next nii palju kordi kui palju ridu on. Näiteks kui ridu on 12, siis see silmus jookseb vahemikus 12 kuni 1 (st 12 korda). Oluline on käivitada see valiku viimasest reast esimeseni, kuna me ei taha, et rea kustutamisel rea numbrid muutuksid.

Samuti kasutatakse sammu -2, kuna peame kustutama iga teise rea (alt üles). Kui soovite kustutada iga kolmanda rea, võite kasutada -3.

VBA ahelas olen iga alternatiivse rea kustutamiseks kasutanud meetodit Selection.Rows (i) .EntireRow.Delete.

Kustutage tühjad read VBA abil

Kõigi tühjade ridade kustutamiseks saate kasutada ka meetodit EntireRow.Delete.

Allpool on VBA -kood, mis valib valitud andmekogus tühjad lahtrid ja kustutab kogu rea.

Alam KustutaBlankRows () Selection.SpecialCells (xlCellTypeBlanks) .EntireRow.Delete End Sub

Ülaltoodud kood kasutab atribuuti SpecialCells kõigi tühjade lahtrite valimiseks ja kustutamiseks. See on sama meetod, mis võimaldab meil ka kõigi tühjade lahtrite valimiseks kasutada dialoogiboksi „Mine erile”.

Kui need tühjad lahtrid on SpecialCelli abil tuvastatud, kustutatakse need seejärel EntireRow.Delete meetodi abil.

Märkus. See meetod valib tühjad lahtrid ja ei kontrolli, kas kogu rida on tühi või mitte. Nii et kui keegi lahtrit on reas tühi, kustutatakse see ikkagi kogu rida.

Kustutage konkreetse sõna/väärtusega read

Samuti saate lihtsa VBA -koodi abil valitud vahemiku iga lahtri läbi vaadata ja kustutada kõik read, kus lahter sisaldab konkreetset teksti või väärtust.

Oletame näiteks, et teil on andmekogum ja ma tahan kustutada kõik lahtrid, mille valiku 2. veerus on tekst Printer.

Allpool on kood, mis seda teeb:

Alam DeleteRowswithSpecificValue () I = Selection.Rows.Count kuni 1 Samm -1 If Lahtrid (i, 2) .Value = "Printer" Siis Lahtrid (i, 2) .EntireRow.Delete End If Next i End Sub

Ülaltoodud kood loendab kõigepealt valiku ridade koguarvu. See tagab, et tsüklit käitatakse ainult neid kordi. Seejärel kasutab see veergu 2 kõigi lahtrite läbimiseks „järgmiseks silmuseks”.

Seejärel kasutatakse lauset IF THEN ELSE, et kontrollida veeru 2 iga lahtri väärtust. Ja juhul, kui väärtus/tekst vastab määratud tekstile (mis on selles näites „Printer”).

Selles näites olen kontrollinud, kas tekst vastab kindlale stringile või mitte. Seda saate teha ka väärtustega. Näiteks saate kustutada kõik read, mille müügiväärtus on väiksem kui 1000 või üle 1000.

Märkus. Siinkohal on oluline märkida, et silmus jookseb Valik. Ridad. Loend 1 veendumaks, et rida kustutatakse, ei mõjuta see selle kohal olevaid ridu.

Kuidas seda VBA koodi kasutada?

Nüüd näitan teile, kuidas kasutada kõiki selles õpetuses mainitud koode kogu rea kustutamiseks.

Peate need koodid kopeerima ja kleepima Exceli VB redaktori moodulisse. Kui olete need koodid kopeerinud, saate makrokoode käivitada.

Allpool on toodud sammud nende VBA -koodide kopeerimiseks ja kleepimiseks moodulisse:

  1. Hoidke all klahvi ALT ja vajutage klahvi F11 (või Function + Option + F11 Macis). See avab VB redaktori
  2. VB redaktoris on vasakul projektiuurija. Kui te seda ei näe, minge suvandile Vaade ja seejärel klõpsake valikul Project Explorer.
  3. Paremklõpsake Project Exploreri mis tahes objekti (töövihiku jaoks, milles soovite koodi käivitada).
  4. Avage Lisa ja seejärel klõpsake moodulit. See lisab töövihiku jaoks uue mooduli
  5. Kopeerige ja kleepige ülaltoodud koodid moodulisse.

Ja nende koodide käivitamiseks võite kursori paigutada suvalisse koodi (mida soovite käivitada) ja vajutada klahvi F5 (või klõpsata VBA tööriistariba rohelisel kolmnurgal).

Samuti olen kirjutanud üksikasjaliku õpetuse erinevate viiside kohta VBA makrokoodide käivitamiseks Excelis.

Kui teil on vaja mõnda neist koodidest üsna sageli kasutada, võite kaaluda ka nende lisamist isikliku makro töövihikusse ja seejärel QAT -i. Nii on kood ühe klõpsuga saadaval teie töövihikutes.

Nii et need olid mõned VBA -koodid, mille abil saate Excelis terveid ridu kustutada (erinevates stsenaariumides). Sama loogikat saab rakendada ka juhul, kui soovite ridade asemel veerge kustutada (vastava kohandusega koodinäidetes).

Loodan, et leidsite selle õpetuse kasulikuks!

wave wave wave wave wave