Ako odstrániť riadok pomocou VBA (14 spôsobov)

  • Zdieľajte To
Hugh West

Ak hľadáte niektoré z najjednoduchších spôsobov odstránenia riadku pomocou VBA , potom ste na správnom mieste.

Poďme sa ponoriť do hlavného článku.

Stiahnite si pracovný zošit

VBA Odstrániť riadok.xlsm

14 spôsobov odstránenia riadku pomocou VBA

Tu mám tri dátové tabuľky, aby som ukázal spôsoby odstraňovania riadkov pomocou VBA Prvá tabuľka obsahuje niektoré Produkty spoločnosti a ich Veľkosti , Ceny .

Druhý má niektoré Kódy produktov a ich zodpovedajúce Veľkosti produktov a Ceny

A posledný obsahuje niekoľko Názvy projektov a ich príslušné Dátumy začatia a Náklady .

Na vytvorenie článku som použil Microsoft Excel 365 verziu, môžete použiť aj iné verzie podľa vlastného uváženia.

Metóda 1: Odstránenie jedného riadku pomocou VBA

Povedzme, že chcete odstrániť riadok obsahujúci Produkt Topánky 1, a na vymazanie tohto jediného riadku môžete použiť túto metódu.

Krok-01 :

➤ Prejsť na Vývojár Tab>> Visual Basic Možnosť

Potom sa Editor jazyka Visual Basic sa otvorí.

➤ Prejsť na Vložte Tab>> Modul Možnosť

Potom sa Modul sa vytvorí.

Krok-02 :

➤Napíšte nasledujúci kód

 Sub dltrow1() Worksheets("Single").Rows(7).EntireRow.Delete End Sub 

Tu, "Single" je názov pracovného hárka a Riadky(7) vyberie číslo riadku.

.EntireRow.Delete odstráni celý riadok 7.

➤Press F5

Výsledok :

Týmto spôsobom odstránite riadok obsahujúci Produkt názov Topánky 1 .

Prečítajte si viac: Ako odstrániť riadky v programe Excel: 7 metód

Metóda 2: Odstránenie viacerých riadkov pomocou VBA

Ak chcete odstrániť viacero riadkov, ako napríklad riadky obsahujúce Produkt mená Obuv1 , Obuv2, a Obuv3 , potom môžete postupovať takto VBA kód.

Krok-01 :

➤Sledovať Krok-01 z Metóda-1

 Sub dltrow2() Rows(13).EntireRow.Delete Rows(10).EntireRow.Delete Rows(7).EntireRow.Delete End Sub 

Tu sa vymažú čísla riadkov 13, 10 a 7 a pri sériovom zápise čísel riadkov musíte písať od posledného čísla riadku po číslo prvého riadku takto.

V opačnom prípade sa po vymazaní prvého riadku, napríklad riadku 7, ostatné riadky pod týmto riadkom posunú o jeden riadok nahor, a teda z riadku 10 bude riadok 9 a z riadku 13 bude riadok 12. Z tohto dôvodu nebudete môcť vymazať správne riadky.

➤Press F5

Výsledok :

Potom odstránite riadky obsahujúce Produkt mená Topánky 1 , Obuv2, a Obuv3 .

Prečítajte si viac: Ako odstrániť viac riadkov v programe Excel (3 metódy)

Metóda 3: Odstránenie riadku výberom

Tu ukážem spôsob, ako vymazať riadok vzhľadom na aktívnu bunku tohto riadku.

Krok-01 :

➤Sledovať Krok-01 z Metóda 1

 Sub dltrow3() ActiveCell.EntireRow.Delete End Sub 

Vymaže riadok s aktívnou bunkou.

➤Uložiť kód.

Krok-02 :

➤Vyberte ľubovoľnú bunku riadku, ktorú chcete vymazať ( Tu som vybral bunku B7 )

➤ Prejsť na Vývojár Tab>> Makrá Možnosť

Potom sa Makro Sprievodca sa otvorí.

➤Vyberte Názov makra dltrow3 a stlačte Spustiť

Výsledok :

Potom odstránite riadok obsahujúci Produkt názov Topánky 1 .

Metóda 4: Odstránenie všetkých riadkov vo výbere

Ak chcete odstrániť všetky riadky výberu, môžete použiť túto metódu.

Krok-01 :

➤Sledovať Krok-01 z Metóda 1

 Sub dltrow4() Selection.EntireRow.Delete End Sub 

Vymaže všetky riadky výberu.

➤Uložiť kód.

Krok-02 :

➤Vyberte rozsah riadkov, ktoré chcete odstrániť (tu som vybral rozsah B7:D9 )

➤ Prejsť na Vývojár Tab>> Makrá Možnosť

Potom sa Makro Sprievodca sa otvorí.

➤Vyberte Názov makra dltrow4 a stlačte Spustiť

Výsledok :

Potom odstránite riadky obsahujúce Produkt mená Topánky 1 , Bunda1, a Bunda2 .

Prečítajte si viac: Ako odstrániť vybrané riadky v programe Excel (8 prístupov)

Metóda 5: Odstránenie riadku, ak je niektorá bunka prázdna

Tu mám prázdnu bunku, ktorá je B9 (pre túto metódu som odstránil hodnotu z tejto bunky) a pomocou VBA kód Odstránim riadok, ktorý má B9 bunky.

Krok-01 :

➤Sledovať Krok-01 z Metóda 1

 Sub dltrow5() Range("B5:D13").SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub 

Vymaže všetky riadky v rozsahu "B5:D13" s ľubovoľnou prázdnou bunkou.

➤Press F5

Výsledok :

Potom budete môcť odstrániť riadok obsahujúci prázdnu bunku.

Prečítajte si viac: Ako odstrániť prázdne riadky v programe Excel (11 metód)

Metóda 6: Odstránenie riadku, ak je celý riadok prázdny

Tu mám prázdnu bunku, ktorá je B9 (hodnoty pre túto metódu som odstránil) a prázdny riadok, ktorým je riadok 12 (hodnoty pre túto metódu som odstránil), a pomocou VBA kód a Funkcia COUNTA Vymažem riadok, ktorý je prázdny.

Krok-01 :

➤Sledovať Krok-01 z Metóda 1

 Sub dltrow6() Dim cell As Range For Each cell In Range("B5:D13") If Application.WorksheetFunction.CountA(cell.EntireRow) = 0 Then cell.EntireRow.Delete End If Next cell End Sub 

"B5:D13" je rozsah údajov a PRE slučka bude fungovať pre každú bunku v tomto rozsahu.

CountA(cell.EntireRow) vráti počet neprázdnych buniek, a keď bude 0, riadok sa vymaže.

➤Press F5

Výsledok :

Potom budete môcť vymazať prázdny riadok, ale nevymaže sa žiadny riadok, ktorý nemá všetky bunky tohto riadku prázdne.

Prečítajte si viac: Ako používať VBA na odstránenie prázdnych riadkov v programe Excel

Metóda 7: Odstránenie každého n-tého riadku

Podľa tejto metódy môžete vymazať každý n-tý riadok (v tomto prípade každý 3. riadok).

Krok-01 :

➤Sledovať Krok-01 z Metóda 1

 Sub dltrow7() rc = Range("B5:D13").Rows.Count For i = rc To 1 Step -3 Range("B5:D13").Rows(i).EntireRow.Delete Next i End Sub 

"B5:D13" je rozsah údajov a rc vráti celkový počet riadkov tohto rozsahu, ktorý je 9 .

Tu sa PRE slučka začne od posledného riadku, ktorý je rc alebo 9 v tomto prípade a končí prvým riadkom.

Krok -3 pomôže vymazať každý 3. riadok v tomto rozsahu.

➤Press F5

Výsledok :

Potom odstránite riadky obsahujúce Produkt mená Topánky 1 , Obuv2, a Obuv3 .

Prečítajte si viac: Ako odstrániť každý n-tý riadok v programe Excel (najjednoduchšie 6 spôsobov)

Podobné čítania:

  • Ako odstrániť vybrané riadky pomocou programu Excel VBA (návod krok za krokom)
  • Odstránenie nepoužívaných riadkov v programe Excel (8 jednoduchých spôsobov)
  • Ako odstrániť skryté riadky v programe Excel (3 metódy)
  • Odstránenie nekonečného počtu riadkov v programe Excel (5 jednoduchých spôsobov)
  • Ako odstrániť riadky v programe Excel, ktoré pokračujú navždy (4 jednoduché spôsoby)

Metóda 8: Odstránenie riadku na základe hodnoty bunky

V tejto metóde odstránim riadok s určitou hodnotou Košeľa 2 .

Krok-01 :

➤Sledovať Krok-01 z Metóda 1

 Sub dltrow8() Dim cell As Range For Each cell In Range("B5:D13") If cell.Value = "Shirt 2" Then cell.EntireRow.Delete End If Next cell End Sub 

"B5:D13" je rozsah údajov a PRE slučka bude fungovať pre každú bunku v tomto rozsahu.

Ak niektorá bunka riadku obsahuje hodnotu "Košeľa 2" potom sa riadok vymaže.

➤Press F5

Výsledok :

Týmto spôsobom odstránite riadok obsahujúci Produkt názov Košeľa 2 .

Prečítajte si viac: Makro VBA na odstránenie riadku, ak bunka obsahuje hodnotu v programe Excel (2 metódy)

Metóda-9: Odstránenie duplicitných riadkov

Tu mám dva riadky s Kód produktu 97375 a preto chcem odstrániť jeden z týchto riadkov, ktoré sú nižšie označené červeným rámčekom.

Krok-01 :

➤Sledovať Krok-01 z Metóda 1

 Sub dltrow9() Range("B5:D13").RemoveDuplicates Columns:=1 End Sub 

Tu, "B5:D13" je rozsah údajov a Stĺpce:=1 znamená, že bude hľadať duplicitné hodnoty len v jednom stĺpci, ktorý je počiatočným stĺpcom. Stĺpec B ale ak chcete vyhľadávať aj v iných stĺpcoch, môžete toto číslo použiť podľa svojich potrieb.

➤Press F5

Výsledok :

Potom budete môcť odstrániť riadok, ktorý je podobný inému riadku.

Prečítajte si viac: Ako odstrániť duplicitné riadky v programe Excel pomocou VBA (8 efektívnych spôsobov)

Metóda-10: Odstránenie riadkov v tabuľke

Predpokladajme, že máte nasledujúcu tabuľku, ktorej názov je Tabuľka1 a teraz chcete z tejto tabuľky odstrániť riadok číslo 6. Môžete to urobiť týmto spôsobom.

Krok-01 :

➤Sledovať Krok-01 z Metóda-1

 Sub dltrow10() ActiveWorkbook.Worksheets("Table").ListObjects("Table1").ListRows(6).Delete End Sub 

Tu, "Tabuľka" je názov listu, "Tabuľka1" je názov tabuľky a 6 je číslo riadku tejto tabuľky, ktorý chcete vymazať.

➤Press F5

Výsledok :

Týmto spôsobom odstránite požadovaný riadok tejto tabuľky.

Prečítajte si viac: Ako odstrániť duplicitné riadky na základe jedného stĺpca pomocou programu Excel VBA

Metóda-11: Odstránenie viditeľných riadkov po filtrovaní

Tu mám tabuľku údajov, ktorá je filtrovaná podľa Cena stĺpec pre hodnoty väčšie ako $1,500.00 a po filtrovaní chcem odstrániť všetky viditeľné riadky.

Krok-01 :

➤Sledovať Krok-01 z Metóda 1

 Sub dltrow11() Range("B5:D13").SpecialCells(xlCellTypeVisible).EntireRow.Delete End Sub 

Tu, "B5:D13" je rozsah údajov.

➤Press F5

Teraz budú všetky viditeľné riadky po filtrovaní vymazané. Skryté riadky môžete teraz vrátiť späť výberom Filter znamenie v Cena stĺpec.

➤Kliknite na Vybrať všetko možnosť

➤Press OK

Výsledok :

Nakoniec získate skryté riadky späť do tabuľky údajov.

Prečítajte si viac: Ako filtrovať a odstraňovať riadky pomocou VBA v programe Excel (2 metódy)

Metóda-12: Odstránenie riadku na základe poslednej aktívnej bunky

Tu je mojou poslednou aktívnou bunkou bunka B13 a chcem vymazať túto poslednú aktívnu bunku nasledujúcej tabuľky údajov.

Krok-01 :

➤Sledovať Krok-01 z Metóda 1

 Sub dltrow12() Cells(Rows.Count, 2).End(xlUp).EntireRow.Delete End Sub 

Tu, 2 znamená Stĺpec B na ktorom mám aktívny mobil, môžete zmeniť číslo podľa svojich potrieb.

➤Press F5

Výsledok :

Týmto spôsobom vymažete posledný aktívny riadok.

Prečítajte si viac: Kód Excel VBA na odstránenie riadkov na základe hodnoty viacerých buniek (3 kritériá)

Metóda-13: Odstránenie riadkov s akýmikoľvek reťazcami

Predpokladajme, že chcete vymazať riadky s ľubovoľným reťazcom, a na to môžete použiť túto metódu.

Krok-01 :

➤Sledovať Krok-01 z Metóda-1

 Sub dltrow13() Dim FirstRow As Long Dim LastRow As Long Dim FirstColumn As Long Dim LastColumn As Long Dim sheet As Worksheet Dim Rng As Range FirstRow = 5 FirstColumn = 2 Set sheet = Worksheets("String") With sheet With .Cells LastRow = .Find(What:="*", LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row LastColumn = .Find(What:="*",LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column End With Set Rng = .Range(.Cells(FirstRow, FirstColumn), .Cells(LastRow, LastColumn)) End With On Error Resume Next Rng.SpecialCells(xlCellTypeConstants, xlTextValues).EntireRow.Delete End Sub 

Tu, "reťazec" je názov hárku, číslo prvého riadku tohto rozsahu údajov je 5 a počiatočné číslo stĺpca je 2

Stránka S umožňuje špecifikovať objekt alebo používateľom definovaný typ raz pre celú sériu príkazov.

Pri chybe pokračovať ďalej príkaz určuje, že keď sa vyskytne chyba počas behu, riadenie prejde na príkaz nasledujúci po príkaze, v ktorom sa vyskytla chyba.

LastRow a LastColumn vráti posledný riadok a stĺpec rozsahu údajov.

SpecialCells(xlCellTypeConstants, xlTextValues) vyberie riadky s akýmikoľvek textovými hodnotami v rozsahu.

➤Press F5

Výsledok :

Potom odstránite riadky, ktoré obsahujú akýkoľvek textový reťazec.

Prečítajte si viac: Skratka programu Excel na odstránenie riadkov (s bonusovými technikami)

Metóda-14: Odstránenie riadku na základe dátumov

Tu odstránim riadky so špeciálnym dátumom 11/12/2021 (mm/dd/rrrr) v tejto metóde pomocou Funkcia DATEVALUE .

Krok-01 :

➤Sledovať Krok-01 z Metóda-1

 Sub dltrow14() Dim FirstRow As Long Dim LastRow As Long Dim CriteriaColumn As Long Dim myDate As Date Dim sheet As Worksheet Dim i As Long Dim myRowsWithDate As Range FirstRow = 5 CriteriaColumn = 3 myDate = DateValue("11/12/2021") Set sheet = Worksheets("Date") With sheet LastRow = .Cells.Find(What:="*", LookIn:=xlFormulas, LookAt:=xlPart, _ SearchOrder:=xlByRows,SearchDirection:=xlPrevious).Row For i = LastRow To FirstRow Step -1 With .Cells(i, CriteriaColumn) If .Value = myDate Then If Not myRowsWithDate Is Nothing Then Set myRowsWithDate = Union(myRowsWithDate, .Cells) Else Set myRowsWithDate = .Cells End If End If End WithNext i End With If Not myRowsWithDate Is Nothing Then myRowsWithDate.EntireRow.Delete End Sub 

Tu, "Dátum" je názov hárku, číslo prvého riadku tohto rozsahu údajov je 5 a číslo stĺpca kritérií (ktorý stĺpec obsahuje dátumy) je 3 .

Stránka S umožňuje špecifikovať objekt alebo používateľom definovaný typ raz pre celú sériu príkazov.

Pri chybe pokračovať ďalej príkaz určuje, že keď sa vyskytne chyba počas behu, riadenie prejde na príkaz nasledujúci po príkaze, v ktorom sa vyskytla chyba.

LastRow vráti posledný riadok rozsahu údajov a tu sa PRE slučka začne od posledného riadku, ktorý je LastRow alebo 6 v tomto prípade a končí prvým riadkom.

DATEVALUE prevedie textový dátum na hodnotu.

Tu, Union vráti spojenie viacerých rozsahov zodpovedajúcich bunkám s dátumom 11/12/2021 a nakoniec sa rozsahy vymažú.

➤Press F5

Výsledok :

Potom odstránite riadky s určitým dátumom 11/12/2021 .

Súvisiaci obsah: Odstránenie riadkov s konkrétnymi údajmi v programe Excel VBA (9 príkladov)

Praktická časť

Na precvičovanie sme vám poskytli Prax sekciu ako nižšie v hárku s názvom Cvičenie . Prosím, urobte to sami.

Záver

V tomto článku som sa snažil pokryť najjednoduchšie spôsoby používania VBA efektívne pre odstraňovanie riadkov. Dúfam, že vám to bude užitočné. Ak máte nejaké návrhy alebo otázky, neváhajte sa o ne podeliť v sekcii komentárov.

Hugh West je veľmi skúsený tréner a analytik Excelu s viac ako 10-ročnými skúsenosťami v tomto odvetví. Má bakalársky titul v odbore účtovníctvo a financie a magisterský titul v odbore Business Administration. Hugh má vášeň pre vyučovanie a vyvinul jedinečný vyučovací prístup, ktorý sa dá ľahko sledovať a pochopiť. Jeho odborné znalosti Excelu pomohli tisíckam študentov a profesionálov na celom svete zlepšiť svoje zručnosti a vyniknúť vo svojej kariére. Hugh sa prostredníctvom svojho blogu delí o svoje znalosti so svetom a ponúka bezplatné výukové programy Excelu a online školenia, ktoré jednotlivcom a firmám pomôžu naplno využiť ich potenciál.