Odstraňte nebo vložte řádky podle hodnoty buňky

Tento tutoriál předvede, jak odstranit nebo vložit řádky na základě hodnot buněk.

Odstranit řádek podle hodnoty buňky

Tím se provede smyčka v rozsahu a odstraní řádky, pokud sloupec A říká „odstranit“.

1234567891011121314151617181920 Dílčí DeleteRowsBasedonCellValue ()"Deklarujte proměnné."Dim LastRow As Long, FirstRow As LongDim Row As LongS ActiveSheet„Definujte první a poslední řádekFirstRow = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Smyčka skrz řádky (zdola nahoru)Pro řádek = LastRow To FirstRow Krok -1Pokud .Range ("A" & Row) .Value = "delete" Then.Range („A“ & Row) .EntireRow.DeleteKonec IfDalší řadaKonec sEnd Sub

Smyčku musíme začít spodním řádkem, protože smazáním řádku se data posunou a řádky se přeskočí, pokud smyčkujete shora dolů.

Všimněte si také, že místo ručního zadávání do posledního řádku vypočítáme poslední použitý řádek.

Odstranit řádek - na základě filtru

V předchozím příkladu jsme prošli řádky a odstranili každý řádek, který splňuje kritéria. Alternativně můžeme použít automatický filtr Excelu k filtrování řádků na základě určitých kritérií a poté odstranit viditelné řádky:

12345678910111213141516171819202122232425 Dílčí filtrAndDeleteRows ()"Deklarujte proměnnou ws."Dim ws As WorksheetNastavit ws = ActiveSheet'Obnovit stávající filtryPři chybě Pokračovat Dalšíws.ShowAllDataPři chybě GoTo 0„Použít filtrws.Range ("a1: d100"). Pole automatického filtru: = 1, kritérium1: = "smazat"'Smazat řádkyApplication.DisplayAlerts = Falsews.Range ("a1: d100"). SpecialCells (xlCellTypeVisible) .DeleteApplication.DisplayAlerts = True„Vymazat filtrPři chybě Pokračovat Dalšíws.ShowAllDataPři chybě GoTo 0End Sub

Odstranit řádek podle kritérií buněk

Tím se provede smyčka v rozsahu a odstraní řádky, pokud buňka ve sloupci A splňuje určitá kritéria (<0):

1234567891011121314151617181920 Dílčí DeleteRowsBasedonCellValue ()"Deklarujte proměnné."Dim LastRow As Long, FirstRow As LongDim Row As LongS ActiveSheet„Definujte první a poslední řádekFirstRow = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Smyčka skrz řádky (zdola nahoru)Pro řádek = LastRow To FirstRow Krok -1Pokud .Range ("A" & Row). Hodnota <0 Potom.Range („A“ & Row) .EntireRow.DeleteKonec IfDalší řadaKonec sEnd Sub

Programování VBA | Generátor kódu pracuje pro vás!

Pokud je buňka prázdná, odstraňte řádek

Tím se provede smyčka v rozsahu a odstraní řádek, pokud je buňka ve sloupci A prázdná:

1234567891011121314151617181920 Dílčí DeleteRowsBasedonCellValue ()"Deklarujte proměnné."Dim LastRow As Long, FirstRow As LongDim Row As LongS ActiveSheet„Definujte první a poslední řaduFirstRow = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Smyčka skrz řádky (zdola nahoru)Pro řádek = LastRow To FirstRow Krok -1Pokud .Range ("A" & Row) .Value = "" Pak.Range („A“ & Row) .EntireRow.DeleteKonec IfDalší řadaKonec sEnd Sub

Odstranit prázdný řádek

Alternativně, pokud chcete odstranit řádek, pokud je celý řádek prázdný (kliknutím na odkaz pro trochu jinou metodu), můžete použít tento kód:

1234567891011121314151617181920 Dílčí DeleteBlankRows ()"Deklarujte proměnné."Dim LastRow As Long, FirstRow As LongDim Row As LongS ActiveSheet„Definujte první a poslední řádekFirstRow = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Smyčka skrz řádky (zdola nahoru)Pro řádek = LastRow To FirstRow Krok -1Pokud WorksheetFunction.CountA (.Rows (Row)) = 0 Pak.Řádky (řádek). Celá řádka. OdstranitKonec IfDalší řadaKonec sEnd Sub

Pokud buňka obsahuje hodnotu, odstraňte řádek

Tím se provede smyčka v rozsahu a odstraní řádek, pokud buňka ve sloupci A není prázdná:

1234567891011121314151617181920 Dílčí DeleteRowsBasedonCellValue ()"Deklarujte proměnné."Dim LastRow As Long, FirstRow As LongDim Row As LongS ActiveSheet„Definujte první a poslední řaduFirstRow = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Smyčka skrz řádky (zdola nahoru)Pro řádek = LastRow To FirstRow Krok -1Pokud .Range ("A" & Row) .Value "" Then.Range („A“ & Row) .EntireRow.DeleteKonec IfDalší řadaKonec sEnd Sub

Už vás nebaví hledat příklady kódu VBA? Zkuste AutoMacro!

Vložit řádek podle hodnoty buňky

Tím se provede smyčka v rozsahu a vloží řádky, pokud určitá buňka v tomto řádku říká „vložte“:

1234567891011121314151617181920 Sub InsertRowsBasedonCellValue ()"Deklarujte proměnné."Dim LastRow As Long, FirstRow As LongDim Row As LongS ActiveSheet„Definujte první a poslední řádekFirstRow = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Smyčka skrz řádky (zdola nahoru)Pro řádek = LastRow To FirstRow Krok -1Pokud .Range ("A" & Row) .Value = "vložte" Pak.Range ("A" & Row) .EntireRow.InsertKonec IfDalší řadaKonec sEnd Sub
wave wave wave wave wave