Obsah
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.xlsm14 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.