VBA Odstranit celý řádek nebo sloupec

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
wave wave wave wave wave