VBA ištrinti eilutes | Pavyzdžiai, kaip ištrinti „Excel“ eilutes naudojant VBA

„Excel VBA“ ištrinti eilutę

Paprastai „Excel“ darbalapyje mes turime du skirtingus būdus, kaip ištrinti eilutes, viena iš jų yra spartusis klavišas, o kitas - naudojant dešinįjį pelės klavišą ir įterpimo metodą, tačiau VBA turime naudoti komandą „Delete“ ir darbalapio ištrynimą, kad ištrintume visas eiles, apgauti tai yra tai, kad jei mums reikia ištrinti vieną eilutę, mes pateikiame vienos eilutės nuorodą, bet keliems stulpeliams - kelias eilutes.

Naudodami VBA Delete Row Method, galime ištrinti visas tuščias eilutes, galime ištrinti eilutę pagal langelio vertę, taip pat galime ištrinti visą eilutę, jei kuri nors iš langelių yra tuščia.

Šiame straipsnyje aptarsime metodą „VBA Delete Row“. Laikykitės užimtas kitas 15–20 minučių, kad sužinotumėte apie koncepciją.

Kaip ištrinti eilutę?

Šį „VBA Delete Row Excel“ šabloną galite atsisiųsti čia - „VBA Delete Row Excel“ šablonas

1 pavyzdys

VBA turime paminėti eilutę, kurią mes ištriname.

Kodas:

 Sub DeleteRow_Example1 () Cells (1, 1) End Sub 

Ląstelės (1, 1) reiškia pirmos eilutės pirmąjį stulpelį, ty A1 langelį. Tada mes naudojame metodą "ištrinti".

Kodas:

 Sub DeleteRow_Example1 () ląstelės (1, 1). Ištrinti pabaigos antrinę 

Dabar tai ištrins pirmąjį langelį. Visos dešiniojo krašto reikšmės vieną langelį perkels į kairę.

2 pavyzdys

Jei norite ištrinti visą eilutę, turime naudoti nuosavybę „EntireRow“, tada turime naudoti metodą „ištrinti“, kad ištrintume visą pasirinkto langelio eilutę.

Kodas:

Sub DeleteRow_Example2 () langeliai (1, 1) .EntireRow. Ištrinti pabaigos antrinę dalį

Pavyzdžiui, į „Excel“ lapą įvedžiau kelis simbolius taip.

Dabar, jei paleisiu šį kodą, ištrinsite visą eilutę, o ne vieną langelį.

3 pavyzdys

Eilutę galime ištrinti keliais būdais. Ankstesniame pavyzdyje mes ištrynėme eilutę naudodami nuosavybę CELLS. Dabar pamatysime, kaip ištrinti naudojant nuosavybę ROWS.

Dabar turime paminėti, kurią eilutę turime ištrinti, tarkime, kad turime ištrinti 5-ąją eilutę.

Dabar naudokite nuosavybę „EntireRow“.

Pasirinkę nuosavybę, ką turime padaryti, ty metodą. Turime ištrinti eilutę.

Kodas:

 Sub DeleteRow_Example3 () eilutės (5) .EntireRow.Delete End Sub 

Taigi, šis kodas ištrins 5-ąją eilutę.

4 pavyzdys

Ištrinkite kelias eilutes naudodami „Range Object“

Kaip ištrinti kelias eilutes?

Norėdami ištrinti daugiau nei vieną eilutę, galime naudoti objektą VBA RANGE. Tarkime, kad turite keletą reikšmių nuo A1 iki A6 langelių.

Dabar noriu ištrinti pirmąsias 5 eilutes, kad galėčiau nurodyti šias eilutes naudodamas „Range“ objektą kaip „Range („ A1: A5 “)“

Kodas:

 Sub DeleteRow_Example4 () Range ("A1: A5") Pabaiga Sub 

Dabar noriu naudoti žodį „EntireRow“.

Kodas:

 Sub DeleteRow_Example4 () diapazonas ("A1: A5"). "EntireRow End" sub 

Visoje šioje eilutėje turime atlikti ištrynimo metodą, todėl naudokite ištrinimo metodą.

Kodas:

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

Dabar tai ištrins pasirinktas eilutes.

5 pavyzdys

Ištrinti eiles pagal langelio vertę

Mes taip pat galime naudoti šį metodą „EntireRow.Delete“, kad ištrintume eilutę pagal langelio vertę VBA. Pavyzdžiui, aš turiu Taip ir Ne reikšmes nuo langelio A1 iki A10.

Dabar turime ištrinti eilutes, kurių reikšmė yra „Ne“. Norėdami atlikti šią užduotį, turime naudoti funkciją „IF“ su kilpomis, kad ištrintume visas eilutes, kurių vertė yra „Ne“.

Žemiau kodas atliks darbą už mus.

Kodas:

 Sub DeleteRow_Example5 () Dim k kaip sveikoji k = 10 iki 1 žingsnis -1, jei langeliai (k, 1). Vertė = "Ne", tada langeliai (k, 1). EntelireRow.Delete End, jei kitas k End Sub 

6 pavyzdys

Ištrinkite visas tuščių langelių eilutes

Yra situacijų, kai turime ištrinti visą eilutę, jei kuri nors diapazono ląstelė yra tuščia. Pavyzdžiui, turiu žemiau duomenų rinkinį.

Visos spalvos langeliai tušti, todėl man reikia ištrinti visą eilutę. Šią užduotį galime atlikti dviem kodų rinkiniais. Žemiau yra kodas.

Kodas:

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

Tai nustatys tuščias langelius diapazone nuo A1 iki F10. Jei visos rastos tuščios langelės ištrins visą eilutę.

Šio kodo problema yra ta, kad tuščią langelio eilutę ištrins tik diapazone nuo A1 iki F10, tačiau jei kurios nors kitos ląstelės tuščios, ji nebus ištrinta. Taigi, turėdamas tai omenyje, parašiau dar vieną kodą.

Kodas:

 Sub DeleteRow_Example7 () Dim RangeToDelete As Range Dim DeletionRange As Range Set RangeToDelete = Application.InputBox ("Prašome pasirinkti diapazoną", "Tuščių langelių eilių ištrynimas", tipas: = 8) Nustatykite DeletionRange = RangeToDelete RangeToDelete.SpecialCells (xlCellTyE). .Ištrinti pabaigos pogrupį 

Pirmiausia paleidus šį kodą, jis paprašys pasirinkti diapazoną su įvesties laukeliu, rodomu priešais jus.

Pasirinkę diapazoną turite spustelėti Gerai, jis ištrins visas tuščias langelių eilutes pasirinktame diapazone.