VBA Odstranění celého řádku nebo sloupce – Automatizace ExceluAutomatizace Excelu

Tento tutoriál ukáže různé způsoby mazání řádků a sloupců v Excelu pomocí VBA.

Odstranění celého řádku nebo sloupce

Pro odstranění celého řádku ve VBA použijte tento řádek kódu:

Rows(1).Delete

Všimněte si, že pro odstranění řádku používáme metodu Delete.

Místo odkazování na objekt Rows se můžete na řádky odkazovat na základě jejich objektu Range pomocí EntireRow:

Range("a1").EntireRow.Delete

Podobně pro smazání celého sloupce použijte tyto řádky kódu:

Columns(1).Delete
Range("a1").EntireColumn.Delete

Odstranění více řádků nebo sloupců

Pomocí stejné logiky můžete také odstranit více řádků najednou:

Rows("1:3").Delete

nebo sloupců:

Columns("A:C").Delete

Všimněte si, že zde odkazujeme na konkrétní čísla řádků a sloupců obklopená uvozovkami.

Můžete samozřejmě také odkazovat na celý řádek rozsahu:

Range("a1:a10").EntireRow.Delete

Poznámka: Níže uvedené příklady demonstrují pouze mazání řádků, nicméně jak vidíte výše, syntaxe je prakticky totožná pro mazání sloupců.

Odstranění prázdných / prázdných řádků

Tento příklad odstraní řádek, pokud je celý řádek prázdný:

Sub DeleteRows_EntireRowBlank()Dim cell As RangeFor Each cell In Range("b2:b20") If Application.WorksheetFunction.CountA(cell.EntireRow) = 0 Then cell.EntireRow.Delete End IfNext cellEnd Sub

Využívá funkci pracovního listu aplikace Excel:

Odstranit řádek, pokud je buňka prázdná

Tento příklad odstraní řádek, pokud je určitý sloupec v tomto řádku prázdný (v tomto případě sloupec B):

Range("b3:b20").SpecialCells(xlCellTypeBlanks).EntireRow.Delete

Odstranit řádek na základě hodnoty buňky

Tento příklad projde rozsah a odstraní řádky, pokud určitá hodnota buňky v tomto řádku říká „odstranit“.

Sub DeleteRowswithSpecificValue()Dim cell As RangeFor Each cell In Range("b2:b20") If cell.Value = "delete" Then cell.EntireRow.Delete End IfNext cellEnd Sub

Další příklady mazání řádků a sloupců

Mazání duplicitních řádků

Tento kód odstraní všechny duplicitní řádky v rozsahu:

Range("b2:c100").RemoveDuplicates Columns:=2

Všimněte si, že jsme nastavili Sloupce:=2. To říká VBA, aby při zvažování, zda jsou řádky duplicitní, kontroloval oba první dva sloupce dat. Duplicita je nalezena pouze v případě, že oba sloupce mají duplicitní hodnoty.

Pokud bychom nastavili tuto hodnotu na 1, byl by na duplicitu kontrolován pouze první řádek.

Odstranit řádky tabulky

Tento kód odstraní druhý řádek v tabulce odkazem na ListObjects.

ThisWorkbook.Sheets("Sheet1").ListObjects("list1").ListRows(2).Delete

Odstranit filtrované řádky

Pro odstranění pouze řádků, které jsou viditelné po filtrování:

Range("b3:b20").SpecialCells(xlCellTypeVisible).EntireRow.Delete

Odstranit řádky v rozsahu

Tento kód odstraní všechny řádky v rozsahu:

Range("a1:a10").EntireRow.Delete

Odstranit vybrané řádky

Tento kód odstraní všechny vybrané řádky:

Selection.EntireRow.Delete

Odstranit poslední řádek

Tento kód odstraní poslední použitý řádek ve sloupci B:

Cells(Rows.Count, 2).End(xlUp).EntireRow.Delete

Změnou 2 na 1 můžete odstranit poslední použitý řádek ve sloupci A atd.:

Cells(Rows.Count, 1).End(xlUp).EntireRow.Delete

Odstranění sloupců podle čísla

Chcete-li odstranit sloupec podle jeho čísla, použijte tento kód:

Columns (2).Delete

.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.