VBA ridade kustutamine | Näited Exceli ridade kustutamiseks VBA abil

Exceli VBA rida kustutamine

Tavaliselt on Exceli töölehes ridade kustutamiseks kaks erinevat meetodit, millest üks on klaviatuuri otsetee ja teine ​​paremklõpsamise ja sisestamise meetodi abil, kuid VBA-s peame kõigi ridade koos kustutamiseks kasutama käsku Kustuta ja töölehe käsku, trikk see on see, et kui peame ühe rida kustutama, anname ühe rea viite, kuid mitme veeru jaoks mitu rida.

Kasutades VBA Kustuta reameetodit, saame kustutada kõik tühjad read, võime kustutada rida lahtri väärtuse põhjal, võime kustutada ka kogu rea, kui mõni lahtritest on tühi.

Selles artiklis käsitleme meetodit “VBA Kustuta rida”. Mõiste tundmaõppimiseks hoidke end järgmise 15–20 minuti jooksul hõivatud.

Kuidas rida kustutada?

Selle VBA Kustuta rea ​​Exceli malli saate alla laadida siit - VBA Kustuta rea ​​Exceli mall

Näide 1

VBA-s peame mainima rida, mille kustutame.

Kood:

 Alam DeleteRow_Example1 () Lahtrid (1, 1) Lõpeta alam 

Lahtrid (1, 1) tähistavad esimese rea esimest veergu ehk A1 lahtrit. Seejärel kasutame meetodit “kustuta”.

Kood:

 Alam DeleteRow_Example1 () lahtrid (1, 1). Kustutage lõpu Alam 

Nüüd kustutatakse see esimene lahter. Kõik parempoolsed väärtused nihutavad ühe lahtri vasakule.

Näide 2

Kui soovite kustutada kogu rea, peame kasutama atribuuti “EntireRow”, siis peame kogu valitud lahtrirea kustutamiseks kasutama meetodit “delete”.

Kood:

Sub DeleteRow_Example2 () lahtrid (1, 1) .EntireRow. Kustuta lõpu alam

Näiteks olen Exceli lehele sisestanud mõned tähemärgid järgmiselt.

Kui ma selle koodi käivitan, kustutab see kogu rea, mitte ühe lahtri.

Näide # 3

Rida saab kustutada mitmel viisil. Ülaltoodud näites oleme rea kustutanud atribuudi CELLS abil, nüüd näeme, kuidas kustutada atribuudi ROWS abil.

Nüüd peame mainima, milline on rida, mille peame kustutama, oletame, et peame kustutama 5. rea.

Nüüd kasutage atribuuti “EntireRow”.

Pärast atribuudi valimist, mida me peame tegema, st meetod. Me peame rida kustutama.

Kood:

 Alam DeleteRow_Example3 () read (5) .EntireRow.Delete End Sub 

Niisiis, see kood kustutab 5. rea.

Näide 4

Kustutage mitu rida, kasutades vahemiku objekti

Kuidas kustutada mitu rida?

Objekti VBA RANGE abil saame kustutada mitu rida. Oletame, et teil on lahtritest A1 kuni A6 mõned väärtused.

Nüüd tahan esimesed 5 rida kustutada, et saaksin nendele ridadele viidata, kasutades objekti Range vahemikuna „Range („ A1: A5 ”)”

Kood:

 Sub DeleteRow_Example4 () vahemik ("A1: A5") Lõpp alam 

Nüüd tahan kasutada vara „EntireRow”.

Kood:

 Sub DeleteRow_Example4 () vahemik ("A1: A5"). EntireRow End Sub 

Kogu selles reas peame teostama kustutamise meetodi, seega kasutage meetodit Kustuta.

Kood:

 Sub DeleteRow_Example4 () vahemik ("A1: A5"). EntireRow .Delete End Sub 

Nüüd see kustutab valitud read.

Näide 5

Kustuta read lahtriväärtuse põhjal

Samuti võime seda meetodit “EntireRow.Delete” kasutada VBA lahtriväärtusel põhineva rea ​​kustutamiseks. Näiteks on mul lahtris A1 kuni A10 väärtused Jah ja Ei.

Nüüd peame kustutama read, millel on väärtus "Ei". Selle ülesande täitmiseks peame kasutama funktsiooni “IF” koos silmustega, et kustutada kõik read, mille väärtus on “Ei”.

Allpool kood teeb selle töö meie eest.

Kood:

 Sub DeleteRow_Example5 () Dim k täisarvuna väärtuseks k = 10 kuni 1 Samm -1, kui lahtrid (k, 1). Väärtus = "Ei", siis lahtrid (k, 1) .EntireRow.Delete End, kui järgmine k End Sub 

Näide # 6

Kustutage kõik tühjad lahtrid

On olukordi, kus peame kogu rea kustutama, kui mõni vahemiku lahtritest on tühi. Näiteks on mul allpool andmeid.

Kõik värvilised lahtrid on tühjad, seega pean kogu rea kustutama. Saame seda ülesannet täita kahe koodikomplektiga. Allpool on kood.

Kood:

 Alam DeleteRow_Example6 () Range ("A1: F10"). SpecialCells (xlCellTypeBlanks) .EntireRow.Delete End Sub 

See tuvastab tühjad lahtrid vahemikus A1 kuni F10. Kui kõik leitud tühjad lahtrid kustutavad kogu rea.

Selle koodi probleem on see, et see kustutab tühja lahtri rea ainult vahemikus A1 kuni F10, kuid kui mõni lahter on tühi mõnes teises lahtris, siis seda ei kustutata. Nii et seda silmas pidades olen kirjutanud veel ühe koodi.

Kood:

 Sub DeleteRow_Example7 () Dim RangeToDelete As Range Dim DeletionRange As Range Set RangeToDelete = Application.InputBox ("Palun valige vahemik", "Tühjade lahtriridade kustutamine", Type: = 8) Set DeletionRange = RangeToDelete RangeToDelete.SpecialCells (xlCellTy). . Kustuta lõpu alam 

Selle koodi käivitamisel palutakse teil kõigepealt valida vahemik, mille ees on sisendkast.

Pärast vahemiku valimist peate klõpsama nuppu OK, kustutab see kõik valitud vahemiku tühjad lahtrid.