Jak usunąć puste wiersze w programie Excel za pomocą VBA, formuł i Power Query

  • Udostępnij To
Michael Brown

Ten samouczek nauczy Cię kilku prostych sztuczek, aby bezpiecznie usunąć wiele pustych wierszy w programie Excel bez utraty ani jednego bitu informacji .

Puste wiersze w Excelu to problem, z którym wszyscy się borykamy raz na jakiś czas, zwłaszcza przy łączeniu danych z różnych źródeł lub importowaniu informacji z innego miejsca. Puste wiersze mogą spowodować spore spustoszenie w Twoich arkuszach na różnych poziomach, a ich ręczne usuwanie może być procesem czasochłonnym i podatnym na błędy. W tym artykule poznasz kilka prostych i niezawodnych metod usuwania pustych wierszy wswoje arkusze.

    Jak NIE usuwać pustych linii w programie Excel

    Istnieje kilka różnych sposobów usuwania pustych linii w programie Excel, ale zaskakująco wiele zasobów internetowych trzyma się najbardziej niebezpiecznego, tj. Znajdź & Wybierz > Go To Special > Blanki .

    Co jest złego w tej technice? Wybiera wszystkie wykroje w zakresie, a w konsekwencji skończysz na usunięciu wszystkich wierszy, które zawierają choćby jedną pustą komórkę.

    Poniższy obraz pokazuje oryginalną tabelę po lewej stronie i wynikową tabelę po prawej stronie. W wynikowej tabeli wszystkie niekompletne wiersze ae zniknęły, nawet wiersz 10, w którym brakowało tylko daty w kolumnie D:

    Wniosek: jeśli nie chcesz zepsuć swoich danych, nigdy nie usuwaj pustych wierszy, wybierając puste komórki. Zamiast tego użyj jednego z bardziej przemyślanych podejść omówionych poniżej.

    Jak usunąć puste wiersze w programie Excel za pomocą VBA

    Excel VBA może naprawić wiele rzeczy, w tym wiele pustych wierszy. Najlepszą rzeczą w tym podejściu jest to, że nie wymaga żadnych umiejętności programowania. Po prostu, złap jeden z poniższych kodów i uruchom go w swoim Excelu (instrukcje są tutaj).

    Makro 1. Usuwanie pustych linii w wybranym zakresie

    Ten kod VBA cicho usuwa wszystkie puste wiersze w wybranym zakresie, bez pokazywania użytkownikowi żadnej wiadomości lub okna dialogowego.

    W przeciwieństwie do poprzedniej techniki, makro usuwa linię, jeśli. cały rząd jest pusty Opiera się na funkcji arkusza CountA, aby uzyskać liczbę niepustych komórek w każdym wierszu, a następnie usuwa wiersze z zerową liczbą.

    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

    Aby dać użytkownikowi możliwość wybrać zakres docelowy po uruchomieniu makra , użyj tego kodu:

    Public Sub RemoveBlankLines() Dim SourceRange As Range Dim EntireRow As Range On Error Resume Next Set SourceRange = Application.InputBox( _ "Wybierz zakres:" , "Usuń puste wiersze" , _ 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 If.Application.WorksheetFunction.CountA(EntireRow) = 0 Then EntireRow.Delete End If Next Application.ScreenUpdating = True End If End Sub

    Po uruchomieniu makro wyświetla następujące okno wejściowe, wybierasz zakres docelowy i klikasz OK:

    Za chwilę wszystkie puste linie w wybranym zakresie zostaną wyeliminowane, a pozostałe przesuną się w górę:

    Makro 2. Usuń wszystkie puste wiersze w Excelu

    Aby usunąć wszystkie puste wiersze na aktywny arkusz , określ ostatni wiersz używanego zakresu (tj. wiersz zawierający ostatnią komórkę z danymi), a następnie przejdź w górę usuwając wiersze, dla których CountA zwraca zero:

    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. Usuń wiersz, jeśli komórka jest pusta

    Za pomocą tego makra można usunąć cały wiersz, jeśli komórka w określonej kolumnie jest pusta.

    Poniższy kod sprawdza kolumnę A pod kątem pustych miejsc. Aby usunąć wiersze na podstawie innej kolumny, zastąp "A" odpowiednią literą.

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

    W rzeczywistości makro wykorzystuje metodę Go To Special > Blanki funkcję, a ten sam rezultat można osiągnąć, wykonując te czynności ręcznie.

    Uwaga. Makro usuwa puste wiersze w cały arkusz Na wszelki wypadek przed uruchomieniem tego makra warto wykonać kopię zapasową arkusza.

    Jak usunąć puste wiersze w programie Excel za pomocą VBA

    Aby usunąć puste wiersze w Excelu za pomocą makra, możesz wstawić kod VBA do własnego skoroszytu lub uruchomić makro z naszego przykładowego skoroszytu.

    Dodaj makro do swojego skoroszytu

    Aby wstawić makro do swojego skoroszytu, wykonaj następujące kroki:

    1. Otwórz arkusz, w którym chcesz usunąć puste wiersze.
    2. Naciśnij Alt + F11, aby otworzyć edytor Visual Basic.
    3. W lewym panelu kliknij prawym przyciskiem myszy ThisWorkbook , a następnie kliknij Wkładka > Moduł .
    4. Wklejenie kodu w oknie Code.
    5. Naciśnij F5, aby uruchomić makro.

    Szczegółowe instrukcje krok po kroku znajdziesz w rozdziale Jak wstawiać i używać VBA w Excelu.

    Uruchom makro z naszego przykładowego skoroszytu

    Pobierz nasz przykładowy skoroszyt z makrami do usuwania pustych wierszy i uruchom z niego jedno z poniższych makr:

    DeleteBlankRows - usuwa puste wiersze w aktualnie wybranym zakresie.

    RemoveBlankLines - usuwa puste wiersze i przesuwa w górę w zakresie, który zostanie wybrany po uruchomieniu makra.

    DeleteAllEmptyRows - usuwa wszystkie puste wiersze na aktywnym arkuszu.

    DeleteRowIfCellBlank - Usuwa wiersz, jeśli komórka w określonej kolumnie jest pusta.

    Aby uruchomić makro w swoim Excelu, wykonaj następujące czynności:

    1. Otwórz pobrany skoroszyt i włącz makra, jeśli zostanie wyświetlony monit.
    2. Otwórz własny skoroszyt i przejdź do interesującego Cię arkusza.
    3. W swoim arkuszu naciśnij Alt + F8, zaznacz makro i kliknij Uruchom .

    Formuła usuwania pustych wierszy w programie Excel

    Na wypadek, gdybyś chciał zobaczyć, co usuwasz, użyj następującej formuły, aby zidentyfikować puste linie:

    =IF(COUNTA(A2:D2)=0, "Pusty", "Nie pusty")

    Gdzie A2 jest pierwszą, a D2 ostatnią używaną komórką pierwszego rzędu danych.

    Wpisz tę formułę w E2 lub w dowolnej innej pustej kolumnie w wierszu 2 i przeciągnij uchwyt wypełnienia, aby skopiować formułę w dół.

    W rezultacie będziesz miał "Puste" w pustych wierszach i "Nie puste" w wierszach, które zawierają co najmniej jedną komórkę z danymi:

    Logika formuły jest oczywista: zliczasz niepuste komórki za pomocą funkcji COUNTA i używasz instrukcji IF, aby zwrócić "Blank" dla zerowej liczby, "Not Blank" w przeciwnym razie.

    W zasadzie można się ładnie obejść bez IF:

    =COUNTA(A2:D2)=0

    W tym przypadku formuła zwróci TRUE dla pustych linii i FALSE dla linii niepustych.

    Mając gotowy wzór, wykonaj te czynności, aby usunąć puste linie:

    1. Zaznacz dowolną komórkę w wierszu nagłówkowym i kliknij Sortowanie & Filtr > Filtr na Strona główna zakładka, w Formaty Spowoduje to dodanie strzałek rozwijania filtrowania do wszystkich komórek nagłówka.
    2. Kliknij strzałkę w nagłówku kolumny formuły, usuń zaznaczenie (Select All), wybierz Pusty i kliknąć OK :
    3. Zaznacz wszystkie filtrowane wiersze. W tym celu kliknij pierwszą komórkę pierwszego filtrowanego wiersza i naciśnij Ctrl + Shift + End, aby rozszerzyć zaznaczenie do ostatniej komórki ostatniego filtrowanego wiersza.
    4. Kliknij prawym przyciskiem myszy na zaznaczeniu, wybierz Usunąć wiersz z menu kontekstowego, a następnie potwierdź, że naprawdę chcesz usunąć całe wiersze:
    5. Usuń filtr, naciskając klawisze Ctrl + Shift + L . Lub kliknij przycisk Strona główna tab> Sortowanie & Filtr > Filtr .
    6. Usuń kolumnę z formułą, ponieważ nie jest ona już potrzebna.

    To wszystko! Jako wynik mamy czystą tabelę bez pustych linii, ale wszystkie informacje zachowane:

    Wskazówka. Zamiast usuwać puste linie, można kopiowanie niepustych wierszy do innego miejsca. Aby to zrobić, odfiltruj wiersze "Nie puste", wybierz je i naciśnij Ctrl + C, aby skopiować. Następnie przełącz się na inny arkusz, wybierz górną lewą komórkę zakresu docelowego i naciśnij Ctrl + V, aby wkleić.

    Jak usunąć puste wiersze w programie Excel za pomocą Power Query

    W Excelu 2016 i Excelu 2019 jest jeszcze jeden sposób na usuwanie pustych wierszy - za pomocą funkcji Power Query. W Excelu 2010 i Excelu 2013 można ją pobrać jako dodatek.

    Ważna uwaga! Ta metoda działa z następującym zastrzeżeniem: Power Query konwertuje dane źródłowe na tabelę Excela i zmienia formatowanie, takie jak kolor wypełnienia, obramowania i niektóre formaty liczb. Jeśli formatowanie oryginalnych danych jest dla Ciebie ważne, to lepiej wybierz inny sposób usuwania pustych wierszy w Excelu.

    1. Wybierz zakres, w którym chcesz usunąć puste linie.
    2. Idź do Dane tab> Get & Transform grupy i kliknij Z tabeli/zakresu Spowoduje to załadowanie tabeli do edytora Power Query.
    3. Na Strona główna w zakładce Edytor zapytań Power Query, kliknij Usuń wiersze > Usuń puste wiersze .
    4. Kliknij przycisk Close & Load Spowoduje to załadowanie wynikowej tabeli do nowego arkusza i zamknięcie Edytora zapytań.

    W wyniku tych manipulacji otrzymałem następującą tabelę bez pustych wierszy, ale z kilkoma nieprzyjemnymi zmianami - format waluty został utracony, a daty są wyświetlane w domyślnym formacie zamiast niestandardowego:

    Jak usunąć wiersze, jeśli komórka w określonej kolumnie jest pusta

    Na początku tego poradnika ostrzegaliśmy przed usuwaniem pustych wierszy poprzez wybieranie pustych miejsc. Jednak ta metoda przydaje się, gdy chcemy usunąć wiersze na podstawie puste miejsca w określonej kolumnie .

    Jako przykład usuńmy wszystkie wiersze, w których komórka w kolumnie A jest pusta:

    1. Wybierz kluczową kolumnę, w naszym przypadku kolumnę A.
    2. Na Strona główna zakładka, kliknij Znajdź & Wybierz > Go To Special Albo naciśnij F5 i kliknij Specjalne... przycisk.
    3. W Go To Special okno dialogowe, wybierz Blanki i kliknąć OK Spowoduje to wybranie pustych komórek w używanym zakresie w kolumnie A.
    4. Kliknij prawym przyciskiem myszy na dowolnie wybranej komórce i wybierz Usuń... z menu kontekstowego.
    5. W Usuń okno dialogowe, wybierz Cały rząd i kliknij przycisk OK.

    Gotowe!!! Wiersze, które nie mają wartości w kolumnie A już nie istnieją:

    Ten sam rezultat można osiągnąć poprzez filtrowanie pustych miejsc w kolumnie klucza.

    Jak usunąć dodatkowe linie pod danymi

    Czasami wiersze, które wyglądają na całkowicie puste, mogą w rzeczywistości zawierać jakieś formaty lub znaki niedrukowalne. Aby sprawdzić, czy ostatnia komórka z danymi jest rzeczywiście ostatnią używaną komórką w twoim arkuszu, naciśnij Ctrl + End . Jeśli to doprowadziło cię do wizualnie pustego wiersza poniżej twoich danych, pod względem Excela ten wiersz nie jest pusty. Aby usunąć takie wiersze, wykonaj następujące czynności:

    1. Kliknij nagłówek pierwszego pustego wiersza poniżej swoich danych, aby go zaznaczyć.
    2. Naciśnij Ctrl + Shift + End . Spowoduje to wybranie wszystkich linii, które zawierają cokolwiek, w tym formaty, spacje i znaki niedrukowane.
    3. Kliknij prawym przyciskiem myszy na zaznaczeniu i wybierz Usuń... > Cały rząd.

    Jeśli masz stosunkowo mały zestaw danych, możesz chcieć pozbyć się wszystkich pustych linii pod danymi, np. aby ułatwić przewijanie. Chociaż nie ma sposobu na usunięcie nieużywanych wierszy w Excelu, nic nie stoi na przeszkodzie, aby ukrycie Oto jak:

    1. Wybierz wiersz poniżej ostatniego wiersza z danymi, klikając jego nagłówek.
    2. Naciśnij Ctrl + Shift + strzałka w dół, aby rozszerzyć zaznaczenie do ostatniego wiersza na arkuszu.
    3. Naciśnij Ctrl + 9, aby ukryć wybrane wiersze. Lub kliknij prawym przyciskiem myszy na zaznaczeniu, a następnie kliknij Ukryj .

    Do Ukryj rzędy , naciśnij Ctrl + A, aby wybrać cały arkusz, a następnie naciśnij Ctrl + Shift + 9, aby wszystkie linie były ponownie widoczne.

    W podobny sposób możesz ukryć nieużywane puste kolumny po prawej stronie danych. Szczegółowe kroki znajdziesz w Ukryj nieużywane wiersze w Excelu, aby widoczny był tylko obszar roboczy.

    Najszybszy sposób na usunięcie pustych wierszy w programie Excel

    Czy czytając poprzednie przykłady, nie mieliśmy wrażenia, że używamy młota kowalskiego do rozbicia orzecha? Tutaj, w Ablebits, wolimy nie czynić rzeczy bardziej skomplikowanymi, niż muszą być. Tak więc, zrobiliśmy krok dalej i stworzyliśmy trasę dwóch kliknięć, aby usunąć puste wiersze w programie Excel.

    Po dodaniu pakietu Ultimate Suite do swojej wstążki, oto jak możesz usuń wszystkie puste wiersze w arkuszu:

    1. Na Narzędzia Ablebits zakładka, w Transformacja grupa, kliknij Usuń puste miejsca > Puste rzędy :
    2. Dodatek poinformuje Cię, że wszystkie puste wiersze zostaną usunięte z aktywnego arkusza i poprosi o potwierdzenie. Kliknij OK, a za chwilę wszystkie puste wiersze zostaną wyeliminowane.

    Jak widać na poniższym zrzucie ekranu, usunęliśmy tylko całkowicie puste wiersze które nie mają ani jednej komórki z danymi:

    Aby dowiedzieć się więcej o wspaniałych funkcjach zawartych w naszym pakiecie Ultimate Suite dla programu Excel, zapraszamy do pobrania wersji próbnej.

    Dziękuję za przeczytanie i mam nadzieję, że zobaczymy się na naszym blogu za tydzień!

    Michael Brown jest oddanym entuzjastą technologii z pasją do upraszczania złożonych procesów za pomocą narzędzi programowych. Dzięki ponad dziesięcioletniemu doświadczeniu w branży technologicznej doskonalił swoje umiejętności w programach Microsoft Excel i Outlook, a także w Arkuszach i Dokumentach Google. Blog Michaela jest poświęcony dzieleniu się swoją wiedzą i doświadczeniem z innymi, dostarczając łatwych do zastosowania wskazówek i samouczków w celu poprawy produktywności i wydajności. Niezależnie od tego, czy jesteś doświadczonym profesjonalistą, czy początkującym, blog Michaela oferuje cenne spostrzeżenia i praktyczne porady dotyczące maksymalnego wykorzystania tych niezbędnych narzędzi programowych.