Ako odstrániť prázdne riadky v programe Excel pomocou VBA, vzorcov a Power Query

  • Zdieľajte To
Michael Brown

Tento návod vás naučí niekoľko jednoduchých trikov na bezpečné odstránenie viacerých prázdnych riadkov v programe Excel bez straty jedinej informácie. .

Prázdne riadky v programe Excel sú problémom, s ktorým sa raz za čas stretneme všetci, najmä pri kombinovaní údajov z rôznych zdrojov alebo pri importe informácií odinakiaľ. Prázdne riadky môžu spôsobiť v pracovných hárkoch na rôznych úrovniach veľkú spúšť a ich ručné odstraňovanie môže byť časovo náročný a náchylný na chyby proces. V tomto článku sa dozviete niekoľko jednoduchých a spoľahlivých metód na odstránenie prázdnych riadkov vvaše pracovné listy.

    Ako NEodstrániť prázdne riadky v programe Excel

    Existuje niekoľko rôznych spôsobov odstraňovania prázdnych riadkov v programe Excel, ale prekvapivo veľa online zdrojov sa drží toho najnebezpečnejšieho, a to Nájsť & Vybrať > Prejsť na špeciálny > Slepé polotovary .

    Čo je na tejto technike zlé? Vyberá všetky polotovary v rozsahu, a preto nakoniec vymažete všetky riadky, ktoré obsahujú čo i len jednu prázdnu bunku.

    Na nasledujúcom obrázku je vľavo pôvodná tabuľka a vpravo výsledná tabuľka. Vo výslednej tabuľke zmizli všetky neúplné riadky, dokonca aj riadok 10, v ktorom chýbal len dátum v stĺpci D:

    Záver: Ak nechcete pokaziť svoje údaje, nikdy neodstraňujte prázdne riadky výberom prázdnych buniek. Namiesto toho použite jeden z premyslenejších prístupov uvedených nižšie.

    Ako odstrániť prázdne riadky v programe Excel pomocou VBA

    Excel VBA dokáže opraviť veľa vecí vrátane viacerých prázdnych riadkov. Najlepšie na tomto prístupe je, že nevyžaduje žiadne programátorské zručnosti. Jednoducho si vezmite jeden z nižšie uvedených kódov a spustite ho vo svojom programe Excel (návod nájdete tu).

    Makro 1. Odstránenie prázdnych riadkov vo vybranom rozsahu

    Tento kód VBA v tichosti odstráni všetky prázdne riadky vo vybranom rozsahu bez toho, aby sa používateľovi zobrazila akákoľvek správa alebo dialógové okno.

    Na rozdiel od predchádzajúcej techniky makro vymaže riadok, ak celý riadok je prázdny Pri zisťovaní počtu neprázdnych buniek v každom riadku sa spolieha na funkciu pracovného hárka CountA a potom odstráni riadky s nulovým počtom.

    Public Sub DeleteBlankRows() Dim SourceRange As Range Dim EntireRow As Range Set SourceRange = Application.Selection If Not (SourceRange Is Nothing ) Then Application.ScreenUpdating = False For I = SourceRange.Rows.Count To 1 Step -1 Set EntireRow = SourceRange.Cells(I, 1).EntireRow If Application.WorksheetFunction.CountA(EntireRow) = 0 Then EntireRow.Delete End If Next Application.ScreenUpdating= True End If End Sub

    Poskytnúť používateľovi možnosť vybrať cieľový rozsah po spustení makra , použite tento kód:

    Public Sub RemoveBlankLines() Dim SourceRange As Range Dim EntireRow As Range On Error Resume Next Set SourceRange = Application.InputBox( _ "Select a range:" , "Delete Blank Rows" , _ Application.Selection.Address, Type :=8) If Not (SourceRange Is Nothing ) Then Application.ScreenUpdating = False For I = SourceRange.Rows.Count To 1 Step -1 Set EntireRow = SourceRange.Cells(I, 1).EntireRow IfApplication.WorksheetFunction.CountA(EntireRow) = 0 Then EntireRow.Delete End If Next Application.ScreenUpdating = True End If End Sub

    Po spustení makra sa zobrazí nasledujúce vstupné okno, vyberiete cieľový rozsah a kliknete na tlačidlo OK:

    V okamihu sa odstránia všetky prázdne riadky vo vybranom rozsahu a zvyšné sa posunú nahor:

    Makro 2. Odstránenie všetkých prázdnych riadkov v programe Excel

    Odstránenie všetky prázdne riadky na aktívny list , určte posledný riadok použitého rozsahu (t. j. riadok obsahujúci poslednú bunku s údajmi) a potom postupujte smerom nahor a vymažte riadky, pre ktoré CountA vráti nulu:

    Sub DeleteAllEmptyRows() Dim LastRowIndex As Integer Dim RowIndex As Integer Dim UsedRng As Range Set UsedRng = ActiveSheet.UsedRange LastRowIndex = UsedRng.Row - 1 + UsedRng.Rows.Count Application.ScreenUpdating = False For RowIndex = LastRowIndex To 1 Step -1 If Application.CountA(Rows(RowIndex)) = 0 Then Rows(RowIndex).Delete End If Next RowIndex Application.ScreenUpdating = True End Sub

    Makro 3. Vymazať riadok, ak je bunka prázdna

    Pomocou tohto makra môžete vymazať celý riadok, ak je bunka v zadanom stĺpci prázdna.

    Nasledujúci kód kontroluje prázdne riadky v stĺpci A. Ak chcete odstrániť riadky na základe iného stĺpca, nahraďte "A" príslušným písmenom.

    Sub DeleteRowIfCellBlank() On Error Resume Next Columns( "A" ).SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub

    V skutočnosti makro používa Prejsť na špeciálny > Slepé polotovary a rovnaký výsledok môžete dosiahnuť aj manuálnym vykonaním týchto krokov.

    Poznámka: Makro odstráni prázdne riadky v celý list , preto buďte pri jeho používaní veľmi opatrní. Pred spustením tohto makra by bolo vhodné zálohovať pracovný hárok.

    Ako odstrániť prázdne riadky v programe Excel pomocou VBA

    Ak chcete odstrániť prázdne riadky v programe Excel pomocou makra, môžete buď vložiť kód VBA do vlastného zošita, alebo spustiť makro z nášho vzorového zošita.

    Pridanie makra do zošita

    Ak chcete do zošita vložiť makro, vykonajte tieto kroky:

    1. Otvorte pracovný hárok, v ktorom chcete odstrániť prázdne riadky.
    2. Stlačením klávesov Alt + F11 otvorte editor jazyka Visual Basic.
    3. Na ľavom paneli kliknite pravým tlačidlom myši na Tento pracovný zošit a potom kliknite na tlačidlo Vložte > Modul .
    4. Vložte kód do okna Kód.
    5. Stlačením klávesy F5 spustíte makro.

    Podrobné pokyny krok za krokom nájdete v časti Ako vložiť a používať VBA v programe Excel.

    Spustenie makra z nášho vzorového zošita

    Stiahnite si náš vzorový zošit s makrami na odstraňovanie prázdnych riadkov a spustite z neho jedno z nasledujúcich makier:

    DeleteBlankRows - odstráni prázdne riadky v aktuálne vybranom rozsahu.

    RemoveBlankLines - odstráni prázdne riadky a posunie ich nahor v rozsahu, ktorý vyberiete po spustení makra.

    DeleteAllEmptyRows - odstráni všetky prázdne riadky na aktívnom liste.

    DeleteRowIfCellBlank - odstráni riadok, ak je bunka v určitom stĺpci prázdna.

    Ak chcete spustiť makro v programe Excel, postupujte takto:

    1. Otvorte stiahnutý zošit a ak sa zobrazí výzva, povoľte makrá.
    2. Otvorte si vlastný zošit a prejdite na hárok, ktorý vás zaujíma.
    3. V pracovnom hárku stlačte klávesy Alt + F8, vyberte makro a kliknite na tlačidlo Spustiť .

    Vzorec na odstránenie prázdnych riadkov v programe Excel

    Ak by ste chceli vidieť, čo odstraňujete, použite na identifikáciu prázdnych riadkov nasledujúci vzorec:

    =IF(COUNTA(A2:D2)=0, "Blank", "Not blank")

    Kde A2 je prvá a D2 je posledná použitá bunka prvého riadku údajov.

    Zadajte tento vzorec do stĺpca E2 alebo do ľubovoľného iného prázdneho stĺpca v riadku 2 a potiahnite rukoväť výplne, aby ste vzorec skopírovali nadol.

    Výsledkom bude, že v prázdnych riadkoch bude "Prázdne" a v riadkoch, ktoré obsahujú aspoň jednu bunku s údajmi, bude "Nie je prázdne":

    Logika vzorca je zrejmá: pomocou funkcie COUNTA spočítate neprázdne bunky a pomocou príkazu IF vrátite "Blank" pre nulový počet, v opačnom prípade "Not Blank".

    V skutočnosti sa môžete zaobísť aj bez IF:

    =COUNTA(A2:D2)=0

    V tomto prípade vzorec vráti TRUE pre prázdne riadky a FALSE pre neprázdne riadky.

    Po vložení vzorca vykonajte tieto kroky na odstránenie prázdnych riadkov:

    1. Vyberte ľubovoľnú bunku v riadku záhlavia a kliknite na tlačidlo Triedenie & amp; Filter > Filter na Domov na karte Formáty Tým sa do všetkých buniek záhlavia pridajú rozbaľovacie šípky filtrovania.
    2. Kliknite na šípku v záhlaví stĺpca vzorca, zrušte začiarknutie (Vybrať všetko), vyberte Prázdne stránky a kliknite na OK :
    3. Vyberte všetky filtrované riadky. Na tento účel kliknite na prvú bunku prvého filtrovaného riadku a stlačte klávesovú skratku Ctrl + Shift + End, čím rozšírite výber na poslednú bunku posledného filtrovaného riadku.
    4. Kliknite pravým tlačidlom myši na výber, vyberte položku Odstrániť riadok z kontextovej ponuky a potom potvrďte, že chcete skutočne odstrániť celé riadky:
    5. Filter odstránite stlačením klávesovej skratky Ctrl + Shift + L . Domov karta> Triedenie & amp; Filter > Filter .
    6. Odstráňte stĺpec so vzorcom, pretože ho už nepotrebujete.

    To je všetko! Výsledkom je čistá tabuľka bez prázdnych riadkov, ale so zachovanými všetkými informáciami:

    Tip. Namiesto vymazania prázdnych riadkov môžete kopírovať neprázdne riadky na iné miesto. Ak to chcete mať hotové, vyfiltrujte riadky "Nie prázdne", vyberte ich a stlačte klávesovú skratku Ctrl + C na kopírovanie. Potom sa prepnite na iný hárok, vyberte ľavú hornú bunku cieľového rozsahu a stlačte klávesovú skratku Ctrl + V na vloženie.

    Ako odstrániť prázdne riadky v programe Excel pomocou nástroja Power Query

    V aplikáciách Excel 2016 a Excel 2019 existuje ešte jeden spôsob odstraňovania prázdnych riadkov - pomocou funkcie Power Query. V aplikáciách Excel 2010 a Excel 2013 ju možno prevziať ako doplnok.

    Dôležitá poznámka! Táto metóda funguje s nasledujúcou výhradou: Power Query konvertuje zdrojové údaje do tabuľky programu Excel a mení formátovanie, napríklad farbu výplne, okraje a niektoré formáty čísel. Ak je pre vás formátovanie pôvodných údajov dôležité, potom radšej vyberte iný spôsob odstránenia prázdnych riadkov v programe Excel.

    1. Vyberte rozsah, v ktorom chcete odstrániť prázdne riadky.
    2. Prejdite na Údaje karta> Získať & amp; Transformovať a kliknite na tlačidlo Z tabuľky/rozsahu . Tým sa vaša tabuľka načíta do editora Power Query Editor.
    3. Na Domov na karte Power Query Editor kliknite na položku Odstránenie riadkov > Odstránenie prázdnych riadkov .
    4. Kliknite na tlačidlo Zavrieť & Načítať Tým sa výsledná tabuľka načíta do nového pracovného hárka a zavrie sa Editor dotazov.

    Výsledkom týchto manipulácií je nasledujúca tabuľka bez prázdnych riadkov, ale s niekoľkými nepríjemnými zmenami - stratil sa formát meny a dátumy sa zobrazujú v predvolenom formáte namiesto vlastného:

    Ako odstrániť riadky, ak je bunka v určitom stĺpci prázdna

    Na začiatku tohto návodu sme vás varovali pred odstraňovaním prázdnych riadkov výberom prázdnych miest. Táto metóda sa však hodí, ak chcete odstrániť riadky na základe prázdne miesta v konkrétnom stĺpci .

    Ako príklad odstráňme všetky riadky, v ktorých je bunka v stĺpci A prázdna:

    1. Vyberte kľúčový stĺpec, v našom prípade stĺpec A.
    2. Na Domov kliknite na kartu Nájsť & Vybrať > Prejsť na špeciálny Alebo stlačte kláves F5 a kliknite na Špeciálne... tlačidlo.
    3. V Prejsť na špeciálny vyberte dialógové okno Slepé polotovary a kliknite na OK . Tým sa vyberú prázdne bunky v použitom rozsahu v stĺpci A.
    4. Kliknite pravým tlačidlom myši na ľubovoľnú vybranú bunku a vyberte položku Vymazať... z kontextového menu.
    5. V Odstrániť dialógové okno, vyberte Celý riadok a kliknite na tlačidlo OK.

    Hotovo! Riadky, ktoré nemajú hodnotu v stĺpci A, sa už nenachádzajú:

    Rovnaký výsledok možno dosiahnuť filtrovaním prázdnych miest v stĺpci s kľúčom.

    Ako odstrániť ďalšie riadky pod údajmi

    Niekedy riadky, ktoré vyzerajú úplne prázdne, môžu v skutočnosti obsahovať niektoré formáty alebo netlačiteľné znaky. Ak chcete skontrolovať, či je posledná bunka s údajmi skutočne poslednou použitou bunkou v pracovnom hárku, stlačte klávesovú skratku Ctrl + End . Ak ste sa tým dostali na vizuálne prázdny riadok pod údajmi, z hľadiska programu Excel tento riadok nie je prázdny. Ak chcete takéto riadky odstrániť, postupujte takto:

    1. Kliknutím na záhlavie prvého prázdneho riadku pod údajmi ho vyberte.
    2. Stlačte klávesovú skratku Ctrl + Shift + End. Týmto spôsobom sa vyberú všetky riadky, ktoré obsahujú čokoľvek vrátane formátov, medzier a netlačových znakov.
    3. Kliknite pravým tlačidlom myši na výber a vyberte položku Vymazať... > Celý rad.

    Ak máte relatívne malý súbor údajov, možno sa budete chcieť zbaviť všetkých prázdnych riadkov pod údajmi, napr. aby sa vám ľahšie posúvalo. Hoci v programe Excel nie je možné odstrániť nepoužívané riadky, nič vám nebráni v tom, aby ste skrývanie Ako na to:

    1. Vyberte riadok pod posledným riadkom s údajmi kliknutím na jeho záhlavie.
    2. Stlačením klávesovej skratky Ctrl + Shift + šípka nadol rozšírite výber na posledný riadok listu.
    3. Stlačením klávesovej skratky Ctrl + 9 skryjete vybrané riadky. Alebo kliknite pravým tlačidlom myši na výber a potom kliknite na Skryť .

    Na odkrývanie riadkov , stlačte klávesovú skratku Ctrl + A, aby ste vybrali celý hárok, a potom stlačte klávesovú skratku Ctrl + Shift + 9, aby sa všetky riadky opäť zviditeľnili.

    Podobným spôsobom môžete skryť nepoužívané prázdne stĺpce napravo od údajov. Podrobný postup nájdete v časti Skryť nepoužívané riadky v programe Excel tak, aby bola viditeľná len pracovná oblasť.

    Najrýchlejší spôsob odstránenia prázdnych riadkov v programe Excel

    Nemali ste pri čítaní predchádzajúcich príkladov pocit, že na rozlúsknutie orecha používame kladivo? V Ablebits radšej nerobíme veci zložitejšími, než je potrebné. Preto sme urobili ďalší krok a vytvorili sme cestu na odstránenie prázdnych riadkov v programe Excel dvomi kliknutiami.

    Ak máte na páske pridaný balík Ultimate Suite, môžete odstrániť všetky prázdne riadky v pracovnom hárku:

    1. Na Nástroje Ablebits na karte Transformácia kliknite na položku Odstránenie prázdnych políčok > Prázdne riadky :
    2. Doplnok vás bude informovať, že z aktívneho pracovného hárka budú odstránené všetky prázdne riadky a požiada vás o potvrdenie. Kliknite na tlačidlo OK a o chvíľu budú všetky prázdne riadky odstránené.

    Ako je znázornené na snímke obrazovky nižšie, odstránili sme iba absolútne prázdne riadky ktoré nemajú ani jednu bunku s údajmi:

    Ak chcete zistiť viac úžasných funkcií, ktoré sú súčasťou nášho balíka Ultimate Suite pre Excel, môžete si stiahnuť skúšobnú verziu.

    Ďakujem vám za prečítanie a dúfam, že sa uvidíme na našom blogu budúci týždeň!

    Michael Brown je nadšený technologický nadšenec s vášňou pre zjednodušovanie zložitých procesov pomocou softvérových nástrojov. S viac ako desaťročnými skúsenosťami v technologickom priemysle si zdokonalil svoje zručnosti v programoch Microsoft Excel a Outlook, ako aj Tabuľky Google a Dokumenty. Michaelov blog je venovaný zdieľaniu svojich vedomostí a odborných znalostí s ostatnými a poskytuje jednoduché tipy a návody na zlepšenie produktivity a efektivity. Či už ste skúsený profesionál alebo začiatočník, Michaelov blog ponúka cenné poznatky a praktické rady, ako z týchto základných softvérových nástrojov vyťažiť maximum.