Cum să ștergeți rândurile goale în Excel cu VBA, formule și Power Query

  • Imparte Asta
Michael Brown

Acest tutorial vă va învăța câteva trucuri simple pentru a șterge mai multe rânduri goale în Excel în siguranță, fără a pierde nici un pic de informații .

Rândurile goale din Excel reprezintă o problemă cu care ne confruntăm cu toții din când în când, mai ales atunci când combinăm date din diferite surse sau importăm informații din altă parte. Rândurile goale pot provoca multe ravagii în foile de calcul pe diferite niveluri, iar ștergerea lor manuală poate fi un proces care necesită mult timp și este predispus la erori. În acest articol, veți învăța câteva metode simple și fiabile pentru a elimina rândurile goale înfișele de lucru.

    Cum să NU eliminați liniile goale în Excel

    Există câteva moduri diferite de a șterge liniile goale în Excel, dar, în mod surprinzător, multe resurse online rămân cu cea mai periculoasă, și anume Găsiți & Selectați > Mergeți la Special > Blanks .

    Ce este greșit la această tehnică? Selectează toate spațiile libere într-un interval și, în consecință, veți ajunge să ștergeți toate rândurile care conțin măcar o singură celulă goală.

    Imaginea de mai jos arată tabelul original în stânga și tabelul rezultat în dreapta. În tabelul rezultat, toate rândurile incomplete au dispărut, chiar și rândul 10, unde lipsea doar data din coloana D:

    Concluzia: dacă nu doriți să vă stricați datele, nu ștergeți niciodată rândurile goale prin selectarea celulelor goale. În schimb, utilizați una dintre abordările mai chibzuite discutate mai jos.

    Cum să eliminați rândurile goale în Excel cu VBA

    Excel VBA poate rezolva o mulțime de lucruri, inclusiv mai multe rânduri goale. Cel mai bun lucru la această abordare este că nu necesită cunoștințe de programare. Pur și simplu, luați unul dintre codurile de mai jos și rulați-l în Excel (instrucțiunile sunt aici).

    Macro 1. Ștergeți liniile goale dintr-un interval selectat

    Acest cod VBA șterge în tăcere toate rândurile goale dintr-un interval selectat, fără a afișa niciun mesaj sau casetă de dialog utilizatorului.

    Spre deosebire de tehnica precedentă, macroul șterge o linie dacă întregul rând este gol Se bazează pe funcția CountA din foaia de calcul pentru a obține numărul de celule care nu sunt goale în fiecare linie și apoi șterge rândurile cu numărul zero.

    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 If End Sub

    Pentru a oferi utilizatorului posibilitatea de a selectați intervalul țintă după rularea macrocomenzii , utilizați acest cod:

    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 Atunci EntireRow.Delete End If Next Application.ScreenUpdating = True End If End If End Sub

    La rulare, macroul afișează următoarea casetă de intrare, selectați intervalul țintă și faceți clic pe OK:

    Într-o clipă, toate liniile goale din intervalul selectat vor fi eliminate, iar cele rămase se vor deplasa în sus:

    Macro 2. Ștergeți toate rândurile goale din Excel

    Pentru a elimina toate rândurile goale pe foaie activă , determinați ultimul rând din intervalul utilizat (adică rândul care conține ultima celulă cu date) și apoi mergeți în sus ștergând liniile pentru care CountA dă 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

    Macro 3. Ștergeți rândul dacă celula este goală

    Cu această macro, puteți șterge un întreg rând dacă o celulă din coloana specificată este goală.

    Următorul cod verifică dacă în coloana A există spații libere. Pentru a șterge rândurile bazate pe o altă coloană, înlocuiți "A" cu o literă corespunzătoare.

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

    De fapt, macroul folosește funcția Mergeți la Special > Blanks și puteți obține același rezultat dacă efectuați acești pași manual.

    Notă. Macroul șterge rândurile goale din întreaga foaie Ca măsură de precauție, ar fi înțelept să faceți o copie de rezervă a foii de calcul înainte de a executa această macro.

    Cum să eliminați liniile goale în Excel cu VBA

    Pentru a șterge rândurile goale în Excel cu ajutorul unei macro, puteți fie să introduceți codul VBA în propriul registru de lucru, fie să executați o macro din registrul nostru de lucru de probă.

    Adăugați o macro la registrul de lucru

    Pentru a insera o macro în registrul de lucru, efectuați următorii pași:

    1. Deschideți foaia de calcul în care doriți să ștergeți rândurile goale.
    2. Apăsați Alt + F11 pentru a deschide editorul Visual Basic.
    3. În panoul din stânga, faceți clic dreapta pe Această carte de lucru , apoi faceți clic pe Introduceți > Modul .
    4. Lipiți codul în fereastra Code.
    5. Apăsați F5 pentru a rula macroul.

    Pentru instrucțiuni detaliate pas cu pas, consultați Cum să introduceți și să utilizați VBA în Excel.

    Rulați o macro din exemplul nostru de registru de lucru

    Descărcați exemplul nostru de registru de lucru cu Macros to Delete Blank Rows (Macro pentru ștergerea rândurilor goale) și rulați una dintre următoarele macro-uri de acolo:

    DeleteBlankRows - elimină rândurile goale din intervalul selectat în mod curent.

    RemoveBlankLines - șterge rândurile goale și se deplasează în sus într-un interval pe care îl selectați după rularea macroului.

    DeleteAllEmptyRows - șterge toate liniile goale de pe foaia activă.

    DeleteRowIfCellBlank - șterge un rând în cazul în care o celulă dintr-o anumită coloană este goală.

    Pentru a rula macroul în Excel, procedați după cum urmează:

    1. Deschideți registrul de lucru descărcat și activați macrogramele dacă vi se solicită.
    2. Deschideți propriul registru de lucru și navigați până la foaia de lucru care vă interesează.
    3. În foaia de calcul, apăsați Alt + F8, selectați macroul și faceți clic pe Rulați .

    Formula pentru a șterge rândurile goale în Excel

    În cazul în care doriți să vedeți ce ștergeți, utilizați următoarea formulă pentru a identifica liniile goale:

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

    Unde A2 este prima și D2 este ultima celulă utilizată din primul rând de date.

    Introduceți această formulă în E2 sau în orice altă coloană goală din rândul 2 și trageți mânerul de umplere pentru a copia formula în jos.

    Ca rezultat, veți avea "Blank" în rândurile goale și "Not blank" în rândurile care conțin cel puțin o celulă cu date:

    Logica formulei este evidentă: numărați celulele care nu sunt goale cu funcția COUNTA și utilizați instrucțiunea IF pentru a returna "Blank" pentru un număr zero, "Not Blank" în caz contrar.

    De fapt, vă puteți descurca foarte bine și fără FI:

    =COUNTA(A2:D2)=0

    În acest caz, formula va returna TRUE pentru liniile goale și FALSE pentru liniile care nu sunt goale.

    După ce formula a fost stabilită, efectuați următorii pași pentru a șterge liniile goale:

    1. Selectați orice celulă din rândul de antet și faceți clic pe Sortare & Filtrare > Filtru pe Acasă în fila Formate Acest lucru va adăuga săgețile de filtrare în toate celulele de antet.
    2. Faceți clic pe săgeata din antetul coloanei de formule, debifați (Select All), selectați Gol și faceți clic pe OK :
    3. Selectați toate rândurile filtrate. Pentru aceasta, faceți clic pe prima celulă din primul rând filtrat și apăsați Ctrl + Shift + End pentru a extinde selecția până la ultima celulă din ultimul rând filtrat.
    4. Faceți clic dreapta pe selecție, alegeți Ștergeți rândul din meniul contextual, apoi confirmați că doriți cu adevărat să ștergeți rânduri întregi:
    5. Îndepărtați filtrul apăsând Ctrl + Shift + L . Sau faceți clic pe Acasă tab> Sortare & Filtrare > Filtru .
    6. Ștergeți coloana cu formula, deoarece nu mai aveți nevoie de ea.

    Și gata! Ca rezultat, avem un tabel curat, fără linii goale, dar cu toate informațiile păstrate:

    Sfat. în loc să ștergeți liniile goale, puteți copierea rândurilor nevide Pentru a face acest lucru, filtrați rândurile "Not blank", selectați-le și apăsați Ctrl + C pentru a le copia. Apoi treceți la o altă foaie, selectați celula din stânga-sus a intervalului de destinație și apăsați Ctrl + V pentru a le lipi.

    Cum să eliminați liniile goale în Excel cu Power Query

    În Excel 2016 și Excel 2019, există încă o modalitate de a șterge rândurile goale - utilizând funcția Power Query. În Excel 2010 și Excel 2013, aceasta poate fi descărcată ca un add-in.

    Notă importantă! Această metodă funcționează cu următorul avertisment: Power Query convertește datele sursă într-un tabel Excel și modifică formatarea, cum ar fi culoarea de umplere, marginile și unele formate de numere. Dacă formatarea datelor originale este importantă pentru dvs., atunci ar fi mai bine să alegeți o altă modalitate de a elimina rândurile goale în Excel.

    1. Selectați intervalul în care doriți să ștergeți liniile goale.
    2. Mergeți la Date tab> Obțineți & Transformați grup și faceți clic pe De la tabel/intervalul Acest lucru va încărca tabelul dvs. în Power Query Editor.
    3. Pe Acasă din Power Query Editor, faceți clic pe Eliminarea rândurilor > Eliminați rândurile goale .
    4. Faceți clic pe butonul Închideți & Încărcați Astfel, tabelul rezultat va fi încărcat într-o nouă foaie de lucru și se va închide editorul de interogări.

    În urma acestor manipulări, am obținut următorul tabel fără linii goale, dar cu câteva modificări neplăcute - formatul valutar este pierdut, iar datele sunt afișate în formatul implicit în loc de cel personalizat:

    Cum se șterg rândurile dacă celula dintr-o anumită coloană este goală

    La începutul acestui tutorial, v-am avertizat să nu eliminați rândurile goale prin selectarea de spații libere. Totuși, această metodă este utilă dacă doriți să ștergeți rânduri pe bază de spații libere într-o anumită coloană .

    Ca exemplu, să eliminăm toate rândurile în care o celulă din coloana A este goală:

    1. Selectați coloana cheie, coloana A în cazul nostru.
    2. Pe Acasă fila, faceți clic pe Găsiți & Selectați > Mergeți la Special Sau apăsați F5 și faceți clic pe butonul Special... buton.
    3. În Mergeți la Special de dialog, selectați Blanks și faceți clic pe OK Aceasta va selecta celulele goale din intervalul utilizat în coloana A.
    4. Faceți clic dreapta pe orice celulă selectată și alegeți Ștergeți... din meniul contextual.
    5. În Ștergeți caseta de dialog, alegeți Întregul rând și faceți clic pe OK.

    S-a făcut! Rândurile care nu mai au o valoare în coloana A nu mai există:

    Același rezultat poate fi obținut prin filtrarea spațiilor libere din coloana cheie.

    Cum să eliminați liniile suplimentare de sub date

    Uneori, rândurile care par complet goale pot conține, de fapt, unele formate sau caractere neimprimabile. Pentru a verifica dacă ultima celulă cu date este într-adevăr ultima celulă utilizată în foaia de lucru, apăsați Ctrl + End . Dacă acest lucru v-a dus la un rând gol din punct de vedere vizual sub date, din punct de vedere al Excel, acel rând nu este gol. Pentru a elimina astfel de rânduri, procedați după cum urmează:

    1. Faceți clic pe antetul primului rând gol de sub datele dvs. pentru a-l selecta.
    2. Apăsați Ctrl + Shift + End . Acest lucru va selecta toate liniile care conțin ceva, inclusiv formate, spații și caractere neimprimate.
    3. Faceți clic dreapta pe selecție și alegeți Ștergeți... > Întregul rând.

    Dacă aveți un set de date relativ mic, este posibil să doriți să scăpați de toate rândurile goale de sub datele dvs., de exemplu pentru a facilita derularea. Deși nu există nicio modalitate de a șterge rândurile neutilizate în Excel, nimic nu vă împiedică să ascunderea Iată cum:

    1. Selectați rândul de sub ultimul rând cu date, făcând clic pe antetul acestuia.
    2. Apăsați Ctrl + Shift + Săgeată în jos pentru a extinde selecția la ultimul rând de pe foaie.
    3. Apăsați Ctrl + 9 pentru a ascunde rândurile selectate. Sau faceți clic dreapta pe selecție, apoi faceți clic pe Ascundeți .

    La dezascundeți rândurile , apăsați Ctrl + A pentru a selecta întreaga foaie, apoi apăsați Ctrl + Shift + 9 pentru a face din nou vizibile toate liniile.

    În mod similar, puteți ascunde coloanele goale neutilizate din dreapta datelor dvs. Pentru pașii detaliați, consultați Ascundeți rândurile neutilizate în Excel astfel încât să fie vizibilă doar zona de lucru.

    Cel mai rapid mod de a elimina rândurile goale în Excel

    Când ați citit exemplele anterioare, nu vi s-a părut că folosim un baros pentru a sparge o nucă? Aici, la Ablebits, preferăm să nu facem lucrurile mai complexe decât trebuie să fie. Așa că am făcut un pas mai departe și am creat un traseu cu două clicuri pentru a șterge rândurile goale în Excel.

    Cu Ultimate Suite adăugat la panglica dvs., iată cum puteți șterge toate rândurile goale într-o foaie de lucru:

    1. Pe Instrumente Ablebits în fila Transformare grup, faceți clic pe Ștergeți spațiile goale > Rânduri goale :
    2. Add-in-ul vă va informa că toate rândurile goale vor fi eliminate din foaia de lucru activă și vă va cere să confirmați. Faceți clic pe OK și, în câteva momente, toate rândurile goale vor fi eliminate.

    După cum se arată în captura de ecran de mai jos, am eliminat doar linii absolut goale care nu au nici măcar o singură celulă cu date:

    Pentru a afla mai multe caracteristici impresionante incluse în suita noastră Ultimate Suite for Excel, vă invităm să descărcați o versiune de încercare.

    Vă mulțumesc pentru lectură și sper să ne revedem pe blog săptămâna viitoare!

    Michael Brown este un pasionat de tehnologie dedicat, cu o pasiune pentru simplificarea proceselor complexe folosind instrumente software. Cu mai mult de un deceniu de experiență în industria tehnologiei, el și-a perfecționat abilitățile în Microsoft Excel și Outlook, precum și în Google Sheets și Docs. Blogul lui Michael este dedicat împărtășirii cunoștințelor și experienței sale cu alții, oferind sfaturi și tutoriale ușor de urmat pentru îmbunătățirea productivității și eficienței. Indiferent dacă sunteți un profesionist experimentat sau un începător, blogul lui Michael oferă informații valoroase și sfaturi practice pentru a profita la maximum de aceste instrumente software esențiale.