Tento tutoriál předvede různé způsoby, jak odstranit řádky a sloupce v Excelu pomocí VBA.
Odstranit celý řádek nebo sloupec
Chcete -li odstranit celý řádek ve VBA, použijte tento řádek kódu:
1 | Řádky (1). Odstranit |
Všimněte si, že používáme Vymazat způsob odstranění řádku.
Místo odkazování na Objekt řádků, můžete odkazovat na řádky na základě jejich Objekt rozsahu s Celá řada:
1 | Rozsah („a1“). EntireRow.Delete |
Podobně k odstranění celého sloupce použijte tyto řádky kódu:
1 | Sloupce (1). Odstranit |
1 | Rozsah („a1“). EntireColumn.Delete |
Odstranit více řádků nebo sloupců
Pomocí stejné logiky můžete také odstranit více řádků najednou:
1 | Řádky („1: 3“). Smazat |
nebo sloupce:
1 | Sloupce („A: C“). Smazat |
Všimněte si zde, že odkazujeme na konkrétní čísla / písmena řádků a sloupců obklopená uvozovkami.
Samozřejmě můžete také odkazovat na celou řadu:
1 | Rozsah ("a1: a10"). EntireRow.Delete |
Poznámka: Níže uvedené příklady ukazují pouze odstraňování řádků, ale jak vidíte výše, syntaxe je pro odstraňování sloupců prakticky identická.
Odstranit prázdné / prázdné řádky
Tento příklad odstraní řádek, pokud je celý řádek prázdný:
1234567891011 | Dílčí DeleteRows_EntireRowBlank ()Dim buňka jako rozsahPro každou buňku v dosahu („b2: b20“)Pokud Application.WorksheetFunction.CountA (cell.EntireRow) = 0 Pakbuňka.EntireRow.DeleteKonec IfDalší buňkaEnd Sub |
Využívá funkci listu aplikace Excel: COUNTA.
Pokud je buňka prázdná, odstraňte řádek
Tím se odstraní řádek, pokud je konkrétní sloupec v tomto řádku prázdný (v tomto případě sloupec B):
1 | Rozsah ("b3: b20"). SpecialCells (xlCellTypeBlanks) .EntireRow.Delete |
Odstranit řádek podle hodnoty buňky
Tím se provede smyčka v rozsahu a odstraní řádky, pokud určitá hodnota buňky v tomto řádku říká „odstranit“.
1234567891011 | Dílčí DeleteRowswithSpecificValue ()Dim buňka jako rozsahPro každou buňku v dosahu („b2: b20“)If cell.Value = "delete" Thenbuňka.EntireRow.DeleteKonec IfDalší buňkaEnd Sub |
Další příklady odstranění řádků a sloupců
Odstranit duplicitní řádky
Tento kód odstraní všechny duplicitní řádky v rozsahu:
1 | Rozsah ("b2: c100"). Sloupce RemoveDuplicates: = 2 |
Všimněte si, že nastavujeme Sloupce: = 2. To říká VBA, aby při zvažování, zda jsou řádky duplicitní, zkontrolovala oba první dva sloupce dat. Duplikát se najde pouze v případě, že oba sloupce mají duplicitní hodnoty.
Pokud bychom toto nastavili na 1, byly by zkontrolovány duplicitní hodnoty pouze v prvním řádku.
Odstranit řádky tabulky
Tento kód odstraní druhý řádek v tabulce odkazováním na ListObjects.
1 | ThisWorkbook.Sheets ("Sheet1"). ListObjects ("list1"). ListRows (2) .Delete |
Odstranit filtrované řádky
Chcete -li odstranit pouze řádky, které jsou viditelné po filtrování:
1 | Rozsah ("b3: b20"). SpecialCells (xlCellTypeVisible) .EntireRow.Delete |
Odstranit řádky v dosahu
Tento kód odstraní všechny řádky v rozsahu:
1 | Rozsah ("a1: a10"). EntireRow.Delete |
Odstranit vybrané řádky
Tento kód odstraní všechny vybrané řádky:
1 | Selection.EntireRow.Delete |
Smazat poslední řádek
Tím se odstraní poslední použitý řádek ve sloupci B:
1 | Buňky (počet řádků, 2). Konec (xlUp) .EntireRow.Delete |
Změnou 2 na 1 můžete odstranit poslední použitý řádek ve sloupci A atd .:
1 | Buňky (počet řádků, 1). Konec (xlUp). EnireRow.Delete |
Odstranit sloupce podle čísla
Chcete -li odstranit sloupec podle jeho čísla, použijte následující kód:
1 | Sloupce (2). Odstranit |