VBA Odstranit řádky | Příklady odstranění řádků aplikace Excel pomocí VBA
Excel VBA Odstranit řádek
Normálně v listu aplikace Excel máme dvě různé metody k odstranění řádků, z nichž jedna je klávesová zkratka a druhá pomocí metody kliknutí pravým tlačítkem a vložení, ale ve VBA musíme použít příkaz delete a příkaz listu k odstranění všech řádků dohromady, trik to je, že pokud potřebujeme odstranit jeden řádek, dáme odkaz na jeden řádek, ale pro více sloupců dáme více odkazů na řádek.
Pomocí metody VBA Delete Row můžeme odstranit všechny prázdné řádky, můžeme odstranit řádek na základě hodnoty buňky, můžeme také odstranit celý řádek, pokud je některá z buněk prázdná.
V tomto článku se budeme zabývat metodou „VBA Delete Row“. Nechte se zaměstnávat dalších 15 až 20 minut, abyste se o tomto konceptu dozvěděli.
Jak odstranit řádek?
Tuto šablonu Excel pro mazání řádků VBA si můžete stáhnout zde - VBA šablonu pro mazání řádků ExcelPříklad č. 1
Ve VBA musíme zmínit řádek, který mazáme.
Kód:
Sub DeleteRow_Example1 () Buňky (1, 1) End Sub
Buňky (1, 1) znamenají první řádek prvního sloupce, tj. Buňku A1. Pak použijeme metodu „vymazat“.
Kód:
Sub DeleteRow_Example1 () Buňky (1, 1). Odstranit End Sub
Tím se odstraní první buňka. Všechny hodnoty na pravé straně posunou jednu buňku doleva.
Příklad č. 2
Chcete-li odstranit celý řádek, musíme použít vlastnost „EntireRow“, pak musíme použít metodu „delete“ k odstranění celého řádku buňky, kterou jsme vybrali.
Kód:
Sub DeleteRow_Example2 () Cells (1, 1) .EntireRow. Odstranit koncový díl
Například jsem zadal několik znaků do listu aplikace Excel následujícím způsobem.
Teď, když spustím tento kód, vymaže celý řádek, ne jednu buňku.
Příklad č. 3
Řádek můžeme odstranit několika způsoby. Ve výše uvedeném příkladu jsme řádek odstranili pomocí vlastnosti CELLS, nyní uvidíme, jak odstranit pomocí vlastnosti ROWS.
Nyní musíme zmínit, co je řádek, který musíme odstranit, řekněme, že musíme odstranit 5. řádek.
Nyní použijte vlastnost „EntireRow“.
Po výběru vlastnosti, co musíme udělat, tj. Metoda. Musíme odstranit řádek.
Kód:
Sub DeleteRow_Example3 () Rows (5) .EntireRow.Delete End Sub
Tento kód tedy odstraní 5. řádek.
Příklad č. 4
Odstraňte více řádků pomocí objektu rozsahu
Jak odstraníme více řádků?
K odstranění více než jednoho řádku můžeme použít objekt VBA RANGE. Předpokládejme, že máte nějaké hodnoty z buněk A1 až A6.
Teď chci odstranit prvních 5 řádků, abych mohl na tyto řádky odkazovat pomocí objektu Range jako „Range („ A1: A5 “)“
Kód:
Sub DeleteRow_Example4 () Range ("A1: A5") End Sub
Nyní chci použít vlastnost „EntireRow“.
Kód:
Sub DeleteRow_Example4 () Range ("A1: A5"). EntireRow End Sub
V celém tomto řádku musíme provést metodu mazání, proto použijte metodu Odstranit.
Kód:
Sub DeleteRow_Example4 () Range ("A1: A5"). EntireRow .Delete End Sub
Tímto odstraníte vybrané řádky.
Příklad č. 5
Odstraňte řádky na základě hodnoty buňky
Tuto metodu „EntireRow.Delete“ můžeme také použít k odstranění řádku na základě hodnoty buňky ve VBA. Například mám hodnoty Ano a Ne z buňky A1 na A10.
Nyní musíme odstranit řádky, které mají hodnotu „Ne“. K provedení tohoto úkolu musíme použít funkci „IF“ se smyčkami k odstranění všech řádků, které mají hodnotu „Ne“.
Níže uvedený kód provede práci za nás.
Kód:
Sub DeleteRow_Example5 () Dim k As Integer For k = 10 To 1 Step -1 If Cells (k, 1) .Value = "No" Then Cells (k, 1) .EntireRow.Delete End If Next k End Sub
Příklad č. 6
Odstraňte všechny prázdné řádky buněk
Existují situace, kdy musíme odstranit celý řádek, pokud je některá z buněk v rozsahu prázdná. Například mám níže sadu dat.
Všechny barevné buňky jsou prázdné, takže musím smazat celý řádek. Můžeme provést tento úkol se dvěma sadami kódu. Níže je uveden kód.
Kód:
Sub DeleteRow_Example6 () Range ("A1: F10"). SpecialCells (xlCellTypeBlanks) .EntireRow.Delete End Sub
Tím se identifikují prázdné buňky v rozsahu A1 až F10. Pokud všechny nalezené prázdné buňky odstraní celý řádek.
Problém s tímto kódem spočívá v tom, že odstraní pouze řádek prázdné buňky pouze v rozsahu A1 až F10, ale pokud jsou některé buňky prázdné v ostatních buňkách, neodstraní se. S ohledem na to jsem napsal ještě jeden kód.
Kód:
Sub DeleteRow_Example7 () Dim RangeToDelete As Range Dim DeletionRange As Range Set RangeToDelete = Application.InputBox ("Prosím vyberte rozsah", "Odstranění řádků prázdných buněk řádků", Typ: = 8) Nastavit DeletionRange = RangeToDelete RangeToDelete.SpecialCells (xlCellTypeBlanks). .Delete End Sub
Když spustíte tento kód nejprve vás požádá o výběr rozsahu se vstupním polem, které se objeví před vámi.
Po výběru rozsahu musíte kliknout na OK, odstraní všechny řádky prázdných buněk ve vybraném rozsahu.