Obsah
Pokud hledáte nejjednodušší způsoby odstranění řádku pomocí VBA , pak jste na správném místě.
Ponořme se do hlavního článku.
Stáhnout pracovní sešit
VBA Odstranit řádek.xlsm14 způsobů odstranění řádku pomocí VBA
Zde mám tři datové tabulky, abych ukázal způsoby mazání řádků pomocí VBA První tabulka obsahuje některé Produkty společnosti a jejich Velikosti , Ceny .
Druhá má některé Kódy produktů a jejich odpovídající Velikosti produktů a Ceny
A poslední obsahuje několik Názvy projektů a jejich příslušné Počáteční data a Náklady .
Pro vytvoření článku jsem použil Microsoft Excel 365 verze, můžete použít i jiné verze podle toho, jak vám to vyhovuje.
Metoda-1: Odstranění jednoho řádku pomocí VBA
Řekněme, že chcete odstranit řádek obsahující Produkt Bota 1, a pro odstranění tohoto jediného řádku můžete použít tuto metodu.
Krok-01 :
➤Přejít na Vývojář Tab>> Visual Basic Možnost
Poté se Editor jazyka Visual Basic se otevře.
➤Přejít na Vložte Tab>> Modul Možnost
Poté se Modul bude vytvořen.
Krok-02 :
➤Napsat následující kód
Sub dltrow1() Worksheets("Single").Rows(7).EntireRow.Delete End Sub
Zde, "Single" je název pracovního listu a Řádky(7) vybere číslo řádku.
.EntireRow.Delete odstraní celý řádek 7.
➤Press F5
Výsledek :
Tímto způsobem odstraníte řádek obsahující položku Produkt název Bota 1 .
Přečtěte si více: Jak odstranit řádky v aplikaci Excel: 7 metod
Metoda-2: Odstranění více řádků pomocí VBA
Pokud chcete odstranit více řádků, jako jsou řádky obsahující znaky Produkt jména Bota1 , Boty2, a Boty3 , pak můžete postupovat takto VBA kód.
Krok-01 :
➤Sledovat Krok-01 z Metoda-1
Sub dltrow2() Rows(13).EntireRow.Delete Rows(10).EntireRow.Delete Rows(7).EntireRow.Delete End Sub
Zde budou vymazána čísla řádků 13, 10 a 7 a při sériovém zápisu čísel řádků je třeba psát od posledního čísla řádku k číslu prvního řádku, jako je tento kód.
V opačném případě se po smazání prvního řádku, jako je řádek 7, zbývající řádky pod tímto řádkem posunou o jeden řádek nahoru, a tak se z řádku 10 stane řádek 9 a z řádku 13 řádek 12. Z tohoto důvodu nebude možné smazat správné řádky.
➤Press F5
Výsledek :
Poté odstraníte řádky obsahující údaje Produkt jména Bota 1 , Boty2, a Boty3 .
Přečtěte si více: Jak odstranit více řádků v aplikaci Excel (3 metody)
Metoda-3: Odstranění řádku výběrem
Zde ukážu způsob, jak odstranit řádek s ohledem na aktivní buňku tohoto řádku.
Krok-01 :
➤Sledovat Krok-01 z Metoda-1
Sub dltrow3() ActiveCell.EntireRow.Delete End Sub
Odstraní řádek s aktivní buňkou.
➤Uložit kód.
Krok-02 :
➤Vyberte libovolnou buňku řádku, kterou chcete odstranit ( Zde jsem vybral buňku B7 )
➤Přejít na Vývojář Tab>> Makra Možnost
Poté se Makro Otevře se průvodce.
➤Zvolte Název makra dltrow3 a stiskněte Spustit
Výsledek :
Následně odstraníte řádek obsahující položku Produkt název Bota 1 .
Metoda-4: Odstranění všech řádků ve výběru
Pro odstranění všech řádků výběru můžete použít tuto metodu.
Krok-01 :
➤Sledovat Krok-01 z Metoda-1
Sub dltrow4() Selection.EntireRow.Delete End Sub
Vymaže všechny řádky výběru.
➤Uložit kód.
Krok-02 :
➤Vyberte rozsah řádků, které chcete odstranit (zde jsem vybral rozsah B7:D9 )
➤Přejít na Vývojář Tab>> Makra Možnost
Poté se Makro Otevře se průvodce.
➤Zvolte Název makra dltrow4 a stiskněte Spustit
Výsledek :
Poté odstraníte řádky obsahující údaje Produkt jména Bota 1 , Bunda1, a Bunda2 .
Přečtěte si více: Jak odstranit vybrané řádky v aplikaci Excel(8 přístupů)
Metoda-5: Odstranění řádku, pokud je některá buňka prázdná
Zde mám prázdnou buňku, která je B9 (pro tuto metodu jsem z této buňky odstranil hodnotu) a pomocí metody VBA kód Odstraním řádek, který má B9 buňka.
Krok-01 :
➤Sledovat Krok-01 z Metoda-1
Sub dltrow5() Range("B5:D13").SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub
Vymaže všechny řádky v rozsahu "B5:D13" s jakoukoli prázdnou buňkou.
➤Press F5
Výsledek :
Poté budete moci řádek obsahující prázdnou buňku odstranit.
Přečtěte si více: Jak odstranit prázdné řádky v aplikaci Excel (11 metod)
Metoda-6: Odstranění řádku, pokud je celý řádek prázdný
Zde mám prázdnou buňku, která je B9 (hodnoty pro tuto metodu jsem odstranil) a prázdný řádek, kterým je řádek 12 (hodnoty pro tuto metodu jsem odstranil), a pomocí metody VBA kód a Funkce COUNTA Vymažu řádek, který je prázdný.
Krok-01 :
➤Sledovat Krok-01 z Metoda-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 dat a PRO smyčka bude fungovat pro každou buňku v tomto rozsahu.
CountA(cell.EntireRow) vrátí počet neprázdných buněk, a když bude 0, řádek bude smazán.
➤Press F5
Výsledek :
Poté budete moci odstranit prázdný řádek, ale nebude odstraněn žádný řádek, který nemá všechny buňky tohoto řádku prázdné.
Přečtěte si více: Jak pomocí VBA odstranit prázdné řádky v aplikaci Excel
Metoda-7: Odstranění každého n-tého řádku
Touto metodou můžete odstranit každý n-tý řádek (v tomto případě každý 3. řádek).
Krok-01 :
➤Sledovat Krok-01 z Metoda-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 dat a rc vrátí celkový počet řádků tohoto rozsahu, který je 9 .
Zde se PRO smyčka začne od posledního řádku, který je rc nebo 9 v tomto případě a končí prvním řádkem.
Krok -3 pomůže odstranit všechny 3. řádek v tomto rozsahu.
➤Press F5
Výsledek :
Poté odstraníte řádky obsahující údaje Produkt jména Bota 1 , Boty2, a Boty3 .
Přečtěte si více: Jak odstranit každý n-tý řádek v aplikaci Excel (6 nejjednodušších způsobů)
Podobné čtení:
- Jak odstranit vybrané řádky pomocí aplikace Excel VBA (návod krok za krokem)
- Odstranění nepoužívaných řádků v aplikaci Excel (8 snadných způsobů)
- Jak odstranit skryté řádky v aplikaci Excel (3 metody)
- Odstranění nekonečného počtu řádků v aplikaci Excel (5 snadných způsobů)
- Jak odstranit řádky v aplikaci Excel, které trvají věčně (4 snadné způsoby)
Metoda-8: Odstranění řádku na základě hodnoty buňky
V této metodě odstraním řádek s určitou hodnotou. Košile 2 .
Krok-01 :
➤Sledovat Krok-01 z Metoda-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 dat a PRO smyčka bude fungovat pro každou buňku v tomto rozsahu.
Pokud některá buňka řádku obsahuje hodnotu "Košile 2" pak bude řádek odstraněn.
➤Press F5
Výsledek :
Tímto způsobem odstraníte řádek obsahující položku Produkt název Košile 2 .
Přečtěte si více: Makro VBA pro odstranění řádku, pokud buňka obsahuje hodnotu v aplikaci Excel (2 metody)
Metoda-9: Odstranění duplicitních řádků
Zde mám dva řádky s Kód produktu 97375 a proto chci odstranit jeden z těchto řádků, které jsou níže označeny červeným rámečkem.
Krok-01 :
➤Sledovat Krok-01 z Metoda-1
Sub dltrow9() Range("B5:D13").RemoveDuplicates Columns:=1 End Sub
Zde, "B5:D13" je rozsah dat a Sloupce:=1 znamená, že bude hledat duplicitní hodnoty pouze v jednom sloupci, který je počátečním sloupcem. Sloupec B ale pokud chcete vyhledávat i v jiných sloupcích, můžete toto číslo použít podle svých potřeb.
➤Press F5
Výsledek :
Poté budete moci odstranit řádek, který je podobný jinému řádku.
Přečtěte si více: Jak odstranit duplicitní řádky v aplikaci Excel pomocí VBA (8 efektivních způsobů)
Metoda-10: Odstranění řádků v tabulce
Předpokládejme, že máte následující tabulku, jejíž název je Tabulka1 a nyní chcete z této tabulky odstranit řádek číslo 6. To provedete následujícím způsobem.
Krok-01 :
➤Sledovat Krok-01 z Metoda-1
Sub dltrow10() ActiveWorkbook.Worksheets("Table").ListObjects("Table1").ListRows(6).Delete End Sub
Zde, "Stůl" je název listu, "Table1" je název tabulky a 6 je číslo řádku této tabulky, který chcete odstranit.
➤Press F5
Výsledek :
Tímto způsobem odstraníte požadovaný řádek této tabulky.
Přečtěte si více: Jak odstranit duplicitní řádky na základě jednoho sloupce pomocí aplikace Excel VBA
Metoda-11: Odstranění viditelných řádků po filtrování
Zde mám tabulku dat, která je filtrována podle parametru Cena sloupec pro hodnoty vyšší než $1,500.00 a chci odstranit všechny viditelné řádky po filtrování.
Krok-01 :
➤Sledovat Krok-01 z Metoda-1
Sub dltrow11() Range("B5:D13").SpecialCells(xlCellTypeVisible).EntireRow.Delete End Sub
Zde, "B5:D13" je rozsah dat.
➤Press F5
Nyní budou všechny viditelné řádky po filtrování smazány. Skryté řádky můžete nyní vrátit zpět výběrem možnosti Filtr znamení v Cena sloupec.
➤Klikněte na Vybrat vše možnost
➤Press OK
Výsledek :
Nakonec získáte skryté řádky zpět do datové tabulky.
Přečtěte si více: Jak filtrovat a odstraňovat řádky pomocí VBA v aplikaci Excel (2 metody)
Metoda-12: Odstranění řádku na základě poslední aktivní buňky
Zde je moje poslední aktivní buňka buňka B13 a chci odstranit tuto poslední aktivní buňku následující datové tabulky.
Krok-01 :
➤Sledovat Krok-01 z Metoda-1
Sub dltrow12() Cells(Rows.Count, 2).End(xlUp).EntireRow.Delete End Sub
Zde, 2 znamená Sloupec B na kterém mám aktivní buňku, můžete číslo změnit podle svých potřeb.
➤Press F5
Výsledek :
Tímto způsobem odstraníte poslední aktivní řádek.
Přečtěte si více: Kód VBA aplikace Excel pro odstranění řádků na základě hodnoty více buněk (3 kritéria)
Metoda-13: Odstranění řádků s libovolnými řetězci
Předpokládejme, že chcete odstranit řádky s libovolným řetězcem, a k tomu můžete použít tuto metodu.
Krok-01 :
➤Sledovat Krok-01 z Metoda-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
Zde, "string" je název listu, číslo prvního řádku tohoto rozsahu dat je 5 a počáteční číslo sloupce je 2
Na stránkách S umožňuje zadat objekt nebo uživatelsky definovaný typ jednou pro celou sérii příkazů.
Při chybě pokračovat Další příkaz určuje, že pokud dojde k chybě při běhu, přejde řízení na příkaz následující za příkazem, ve kterém došlo k chybě.
LastRow a LastColumn vrátí poslední řádek a sloupec rozsahu dat.
SpecialCells(xlCellTypeConstants, xlTextValues) vybere řádky s libovolnými textovými hodnotami v daném rozsahu.
➤Press F5
Výsledek :
Poté odstraníte řádky s libovolným textovým řetězcem.
Přečtěte si více: Zkratka aplikace Excel pro mazání řádků (s bonusovými technikami)
Metoda-14: Odstranění řádku na základě dat
Zde odstraním řádky se zvláštním datem. 11/12/2021 (mm/dd/rrrr) v této metodě s použitím příkazu Funkce DATEVALUE .
Krok-01 :
➤Sledovat Krok-01 z Metoda-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
Zde, "Datum" je název listu, číslo prvního řádku tohoto rozsahu dat je 5 a číslo sloupce kritérií (který sloupec obsahuje data) je 3 .
Na stránkách S umožňuje zadat objekt nebo uživatelsky definovaný typ jednou pro celou sérii příkazů.
Při chybě pokračovat Další určuje, že pokud dojde k chybě při běhu, přejde řízení na příkaz následující za příkazem, ve kterém došlo k chybě.
LastRow vrátí poslední řádek rozsahu dat a zde se použije PRO smyčka začne od posledního řádku, který je LastRow nebo 6 v tomto případě končí prvním řádkem.
DATEVALUE převede textové datum na hodnotu.
Zde, Union vrátí sjednocení více rozsahů odpovídajících buňkám s datem. 11/12/2021 a nakonec budou rozsahy odstraněny.
➤Press F5
Výsledek :
Poté odstraníte řádky s určitým datem. 11/12/2021 .
Související obsah: Odstranění řádků s konkrétními daty pomocí aplikace Excel VBA (9 příkladů)
Praktická část
Pro samostatné cvičení jsme připravili Cvičení sekce jako níže v listu s názvem Cvičení . Udělejte to prosím sami.
Závěr
V tomto článku jsem se pokusil popsat nejjednodušší způsoby použití. VBA efektivně pro mazání řádků. Doufám, že vám to bude užitečné. Pokud máte nějaké návrhy nebo dotazy, neváhejte se o ně podělit v sekci komentářů.