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 |