A teljes sor törlése az Excel programban a VBA használatával (példák)

A sorok hozzáadása és törlése a mindennapi gyakori feladatok közé tartozik, amikor Excel -sel dolgozik.

Bár ezt könnyen megteheti a munkalapról, néha érdemes a VBA útvonalat használni a sorok törléséhez az Excelben. Ezek lehetnek egy adott sor, több sor törlése a kijelölésben, alternatív sorok törlése vagy azok, amelyeknek meghatározott értéke van.

Ebben az oktatóanyagban megmutatom, hogyan törölheti a sorokat az Excelben VBA használatával (több forgatókönyv).

Kezdjük hát el!

Egy egész sor törlése a VBA segítségével

Ha egy teljes sort szeretne törölni az Excelben a VBA használatával, akkor az EntireRow.Delete módszert kell használnia.

Például, ha törölni szeretné a munkalap első sorát, használhatja az alábbi kódot:

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

A fenti kód először a törlendő sort határozza meg (ezt a zárójelben lévő szám megadásával lehet elvégezni), majd az EntireRow.Delete metódussal törli.

Több sort is törölhet, ha megadja ezeket a sorokat a kódban.

Például az alábbi kód törli az 1., 5. és 9. sort a munkalapon:

Sub DeleteEntireRow () Rows (9) .EntireRow.Delete Rows (5) .EntireRow.Selete Role (1) .EntireRow.Delete End Sub

A fenti kód ugyanazt a logikát használja, ahol megadja a sorszámokat, és az Excel egyenként törli ezeket a sorokat.

FONTOS: Ha a fenti kódhoz hasonló sorokat töröl, ne felejtse el a törlést alulról kezdeni, majd felfelé. Például, ha felülről kezdi, és először törli az 1. sort, akkor az alatta lévő sorok egy sorral feljebb tolódnak, és a számozás ki van kapcsolva (mivel az 5. sor lesz a 4. sor és így tovább)

A kijelölés összes sorának törlése

Ha törölni szeretné a kijelölt cellatartomány összes sorát, használhatja az alábbi VBA makrókódot:

Sub DeleteEntireRow () Selection.EntireRow.Delete End Sub

A fenti kód az EntireRow.Delete metódusra vonatkozik a teljes választékra.

Alternatív sorok törlése (vagy minden harmadik/negyedik/n. Sor törlése)

Előfordulhat, hogy olyan adatkiírást kap, ahol minden második sor (vagy harmadik, negyedik vagy n. Sor) haszontalan, és törölni kell.

Korábban pénzügyi adatokkal dolgoztam, ahol minden második sor üres volt, és törölni kellett.

Ez az a forgatókönyv, amikor a VBA valóban ragyog.

Az alábbiakban látható a VBA kód, amely végigmegy a kijelölés minden során, és minden második sort törli:

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

Hadd magyarázzam meg, hogyan működik ez a VBA kód.

Először egy változót használtam RCount hogy megkapja a kijelölt sorok teljes számát.

Ezután egy For Next ciklus segítségével futtattam ezt, ahányszor annyi sor van. Például, ha 12 sor van, ez a ciklus 12 -től 1 -ig (azaz 12 -szer) fog futni. Fontos, hogy ezt a kijelölés utolsó sorától az elsőig futtassuk, mivel nem akarjuk, hogy a sorok száma megváltozzon egy sor törlésekor.

Ezenkívül a -2 lépést is használjuk, mivel minden más sort törölnünk kell (alulról felfelé). Ha minden harmadik sort törölni szeretne, használhatja a -3 billentyűt.

A VBA cikluson belül a Selection.Rows (i) .EntireRow.Delete metódust használtam minden alternatív sor törléséhez.

Törölje az üres sorokat a VBA segítségével

Az EntireRow.Delete módszerrel törölheti az összes üres sort.

Az alábbiakban látható a VBA -kód, amely kiválasztja a kiválasztott adatkészlet üres celláit, és törli a teljes sort.

Sub DeleteBlankRows () Selection.SpecialCells (xlCellTypeBlanks) .EntireRow.Delete End Sub

A fenti kód a SpecialCells tulajdonság segítségével választja ki és törli az összes üres cellát. Ez ugyanaz a módszer, amely lehetővé teszi, hogy a „Go to Special” párbeszédpanelt használjuk az üres cellák kijelölésére.

Miután ezeket az üres cellákat a SpecialCell segítségével azonosította, ezeket törli az EntireRow.Delete módszerrel.

Megjegyzés: Ez a módszer üres cellákat választ ki, és nem ellenőrzi, hogy az egész sor üres -e vagy sem. Tehát ha bárki cellája üres egy sorban, akkor is törli az egész sort.

Sorok törlése egy adott szóval/értékkel

Egy egyszerű VBA -kódot is használhat a kijelölt tartomány minden cellájának végiggondolásához, és törölheti az összes olyan sort, ahol a cella adott szöveget vagy értéket tartalmaz.

Tegyük fel például, hogy rendelkezik adatkészlettel, és törölni akarom az összes cellát, amelyekben a nyomtató szöveg szerepel a kijelölés 2. oszlopában.

Az alábbiakban látható a kód, amely ezt megteszi:

Sub DeleteRowswithSpecificValue () For i = Selection.Rows.Count To 1 Step -1 If Cells (i, 2) .Value = "Printer" then Cells (i, 2) .EntireRow.Delete End If Next i End Sub

A fenti kód először megszámolja a kiválasztott sorok teljes számát. Ez biztosítja, hogy a ciklus csak ennyiszer fusson. Ezután a „Következő ciklus” segítségével végigmegy a 2. oszlop összes celláján.

Az IF THEN ELSE utasítást ezután a 2. oszlop minden cellájában lévő érték ellenőrzésére használják. Ha az érték/szöveg megegyezik a megadott szöveggel (ami ebben a példában „Nyomtató”).

Ebben a példában ellenőriztem, hogy a szöveg megfelel -e egy adott karakterláncnak, vagy sem. Ezt értékekkel is megteheti. Például törölhet minden olyan sort, ahol az értékesítési érték 1000 -nél kisebb vagy 1000 -nél nagyobb.

Megjegyzés: Itt fontos megjegyezni, hogy a hurok innen indul Kiválasztás. Sorok. Számolás 1 -ig hogy egy sor törlésekor ne legyen hatással a felette lévő sorokra.

Hogyan kell használni ezt a VBA kódot?

Most hadd mutassam meg, hogyan használhatja az oktatóanyagban említett összes kódot a teljes sor törléséhez.

Másolja és illessze be ezeket a kódokat az Excel VB Editor egyik moduljába. Miután átmásolta ezeket a kódokat, futtathatja a makrókódokat.

Az alábbiakban bemutatjuk, hogyan másolhatja be és illesztheti be ezeket a VBA -kódokat egy modulba:

  1. Tartsa lenyomva az ALT billentyűt, és nyomja meg az F11 billentyűt (vagy a Function + Option + F11 billentyűket Mac esetén). Ez megnyitja a VB szerkesztőt
  2. A VB szerkesztőben a projektfelfedező a bal oldalon lesz. Ha nem látja, lépjen a Nézet lehetőségre, majd kattintson a Project Explorer elemre.
  3. Kattintson a jobb gombbal a Project Explorer bármelyik objektumára (azon a munkafüzetnél, amelyben a kódot futtatni szeretné).
  4. Lépjen a Beszúrás elemre, majd kattintson a Modul elemre. Ez új modult illeszt be a munkafüzetbe
  5. Másolja és illessze be a fenti kódokat a modulba.

Ezeknek a kódoknak a futtatásához vigye a kurzort a kód tetszőleges pontjára (amelyet futtatni szeretne), és nyomja meg az F5 billentyűt (vagy kattintson a zöld háromszögre a VBA eszköztárban).

Részletes oktatóanyagot is írtam a VBA makrókódok Excelben történő futtatásának különböző módjairól.

Ha ezen kódok bármelyikét elég gyakran kell használnia, fontolja meg, hogy ezeket hozzáadja a Személyes makró munkafüzethez, majd a QAT -hoz. Így a kód egyetlen kattintással elérhető lesz a munkafüzetek bármelyikében.

Tehát ezek voltak néhány VBA -kód, amelyekkel teljes sorokat törölhet az Excelben (különböző esetekben). Ugyanez a logika alkalmazható abban az esetben is, ha sorok helyett oszlopokat szeretne törölni (a megfelelő példákkal a kódpéldákban).

Remélem, hasznosnak találta ezt az oktatóanyagot!

Segít a fejlesztés a helyszínen, megosztva az oldalt a barátaiddal

wave wave wave wave wave