Kaip ištrinti tuščias "Excel" eilutes naudojant VBA, formules ir "Power Query

  • Pasidalinti
Michael Brown

Šioje pamokoje sužinosite keletą paprastų gudrybių, kaip saugiai ištrinti kelias tuščias eilutes "Excel" programoje neprarandant nė trupučio informacijos. .

Su tuščiomis eilutėmis "Excel" programoje susiduriame visi, ypač kai deriname duomenis iš skirtingų šaltinių arba importuojame informaciją iš kitur. Tuščios eilutės gali labai sujaukti jūsų darbalapius įvairiais lygmenimis, o jų šalinimas rankiniu būdu gali būti daug laiko ir klaidų reikalaujantis procesas. Šiame straipsnyje sužinosite keletą paprastų ir patikimų metodų, kaip pašalinti tuščias eilutes.savo darbalapius.

    Kaip NEpašalinti tuščių eilučių "Excel" programoje

    Yra keli skirtingi būdai, kaip "Excel" programoje ištrinti tuščias eilutes, tačiau stebėtinai daug internetinių išteklių laikosi pavojingiausio būdo, t. y. Rasti ir pasirinkti > Pereiti į specialią > Ruošiniai .

    Kas šiame metode yra blogai? visi ruošiniai diapazone, todėl galiausiai ištrinsite visas eilutes, kuriose yra bent vienas tuščias langelis.

    Toliau pateiktame paveikslėlyje kairėje pusėje parodyta pradinė lentelė, o dešinėje - gauta lentelė. Gautoje lentelėje nebeliko visų neužpildytų eilučių, net 10 eilutės, kurioje trūko tik D stulpelio datos:

    Esmė: jei nenorite sugadinti duomenų, niekada netrinkite tuščių eilučių pasirinkdami tuščius langelius. Vietoj to naudokite vieną iš toliau aptartų labiau apgalvotų metodų.

    Kaip pašalinti tuščias "Excel" eilutes naudojant VBA

    "Excel" VBA gali ištaisyti daugybę dalykų, įskaitant daugybę tuščių eilučių. Geriausia, kad šiam metodui nereikia jokių programavimo įgūdžių. Tiesiog paimkite vieną iš toliau pateiktų kodų ir paleiskite jį "Excel" programoje (instrukcijos pateikiamos čia).

    Makro 1. Ištrinti tuščias eilutes pasirinktame intervale

    Šis VBA kodas tyliai pašalina visas tuščias pasirinkto diapazono eilutes, nerodydamas naudotojui jokio pranešimo ar dialogo lango.

    Skirtingai nuo ankstesnio metodo, šis makrokomandas ištrina eilutę, jei visa eilutė yra tuščia Ji remiasi darbalapio funkcija CountA, kad gautų kiekvienoje eilutėje esančių ne tuščių langelių skaičių, ir tada ištrina eilutes, kurių skaičius lygus nuliui.

    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

    Suteikti naudotojui galimybę pasirinkite tikslinį diapazoną paleidę makrokomandą. , naudokite šį kodą:

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

    Paleidus makrokomandą, rodomas šis įvesties langas, pasirenkamas tikslinis diapazonas ir spustelėjama OK:

    Po akimirkos visos tuščios eilutės pasirinktame intervale bus pašalintos, o likusios pasislinks aukštyn:

    Makro 2. Ištrinti visas tuščias "Excel" eilutes

    Pašalinti visos tuščios eilutės apie aktyvus lapas , nustatykite paskutinę naudojamo intervalo eilutę (t. y. eilutę, kurioje yra paskutinis langelis su duomenimis), tada eikite aukštyn ir ištrinkite eilutes, kurių CountA grąžina nulį:

    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. Ištrinti eilutę, jei ląstelė tuščia

    Naudodami šį makrokomandą galite ištrinti visą eilutę, jei nurodyto stulpelio langelis yra tuščias.

    Toliau pateiktame kode tikrinama, ar stulpelyje A nėra tuščių langelių. Norėdami ištrinti eilutes pagal kitą stulpelį, pakeiskite "A" atitinkama raide.

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

    Tiesą sakant, makrokomandoje naudojamas Pereiti į specialią > Ruošiniai funkciją, o tą patį rezultatą galite pasiekti atlikdami šiuos veiksmus rankiniu būdu.

    Pastaba. Makro ištrina tuščias eilutes iš visas lapas todėl naudodami jį būkite labai atsargūs. Dėl atsargumo, prieš paleidžiant šį makrokomandą, vertėtų sukurti atsarginę darbalapio kopiją.

    Kaip pašalinti tuščias eilutes "Excel" programoje naudojant VBA

    Norėdami ištrinti tuščias "Excel" eilutes naudodami makrokomandą, galite įterpti VBA kodą į savo darbaknygę arba paleisti makrokomandą iš mūsų pavyzdinės darbaknygės.

    Į darbaknygę pridėkite makrokomandą

    Norėdami į sąsiuvinį įterpti makrokomandą, atlikite šiuos veiksmus:

    1. Atidarykite darbalapį, kuriame norite ištrinti tuščias eilutes.
    2. Paspauskite Alt + F11, kad atidarytumėte Visual Basic redaktorių.
    3. Kairiajame lange dešiniuoju pelės klavišu spustelėkite Ši darbo knyga , tada spustelėkite Įdėkite > Modulis .
    4. Įklijuokite kodą į langą Kodas.
    5. Paspauskite F5, kad paleistumėte makrokomandą.

    Išsamias žingsnis po žingsnio instrukcijas rasite skyriuje Kaip įterpti ir naudoti VBA programoje "Excel".

    Paleiskite makrokomandą iš mūsų pavyzdinės darbo knygos

    Atsisiųskite mūsų pavyzdinį sąsiuvinį su tuščioms eilutėms ištrinti skirtomis makrokomandomis ir paleiskite vieną iš toliau nurodytų makrokomandų:

    DeleteBlankRows - pašalina tuščias eilutes iš šiuo metu pasirinkto intervalo.

    RemoveBlankLines - ištrina tuščias eilutes ir perkelia aukštyn diapazone, kurį pasirenkate paleidę makrokomandą.

    DeleteAllEmptyRows - pašalina visas tuščias aktyvaus lapo eilutes.

    DeleteRowIfCellBlank - ištrina eilutę, jei tam tikro stulpelio langelis yra tuščias.

    Norėdami paleisti makrokomandą "Excel" programoje, atlikite šiuos veiksmus:

    1. Atidarykite atsisiųstą sąsiuvinį ir, jei paprašyta, įjunkite makrokomandas.
    2. Atidarykite savo sąsiuvinį ir pereikite prie dominančio darbalapio.
    3. Darbalapyje paspauskite Alt + F8, pasirinkite makrokomandą ir spustelėkite Paleisti .

    Formulė tuščioms eilutėms ištrinti "Excel" programoje

    Jei norite pamatyti, ką trinate, naudokite šią formulę tuščioms eilutėms nustatyti:

    =IF(COUNTA(A2:D2)=0, "Tuščia", "Ne tuščia")

    Kai A2 yra pirmoji, o D2 - paskutinė naudojama pirmosios duomenų eilutės ląstelė.

    Įveskite šią formulę į E2 arba bet kurį kitą tuščią 2 eilutės stulpelį ir vilkite užpildymo rankenėlę, kad nukopijuotumėte formulę žemyn.

    Dėl to tuščiose eilutėse bus "Tuščia", o eilutėse, kuriose yra bent vienas langelis su duomenimis, - "Ne tuščia":

    Formulės logika akivaizdi: naudodami funkciją COUNTA suskaičiuojate ne tuščius langelius ir naudodami teiginį IF grąžinate "Tuščia", jei jų skaičius lygus nuliui, o kitu atveju - "Ne tuščia".

    Tiesą sakant, galite puikiai apsieiti ir be IF:

    =COUNTA(A2:D2)=0

    Šiuo atveju formulė grąžins TRUE, jei eilutės tuščios, ir FALSE, jei eilutės nėra tuščios.

    Įdiegę formulę, atlikite šiuos veiksmus, kad ištrintumėte tuščias eilutes:

    1. Pasirinkite bet kurį antraštės eilutės langelį ir spustelėkite Rūšiuoti ir filtruoti > Filtras apie Pagrindinis skirtuke Formatai Taip į visus antraštės langelius bus pridėtos filtravimo išskleidžiamosios rodyklės.
    2. Spustelėkite formulės stulpelio antraštėje esančią rodyklę, panaikinkite žymėjimą (Select All), pasirinkite Tuščia ir spustelėkite GERAI :
    3. Pažymėkite visas filtruotas eilutes. Šiuo tikslu spustelėkite pirmosios filtruotos eilutės pirmąją ląstelę ir paspauskite Ctrl + Shift + End, kad išplėstumėte pasirinkimą iki paskutinės filtruotos eilutės paskutinės ląstelės.
    4. Dešiniuoju pelės klavišu spustelėkite pasirinkimą, pasirinkite Ištrinti eilutę iš kontekstinio meniu ir patvirtinkite, kad tikrai norite ištrinti visas eilutes:
    5. Filtrą pašalinkite paspausdami Ctrl + Shift + L . Arba spustelėkite Pagrindinis skirtukas> Rūšiuoti ir filtruoti > Filtras .
    6. Ištrinkite stulpelį su formule, nes jis jums nebereikalingas.

    Štai ir viskas! Rezultatas - turime švarią lentelę, kurioje nėra tuščių eilučių, bet visa informacija išsaugota:

    Patarimas. Užuot ištrynę tuščias eilutes, galite kopijuoti netuščias eilutes į kitą vietą. Kad tai padarytumėte, išfiltruokite "Ne tuščios" eilutes, pažymėkite jas ir spauskite Ctrl + C, kad nukopijuotumėte. Tada pereikite į kitą lapą, pažymėkite paskirties intervalo viršutinį kairįjį langelį ir spauskite Ctrl + V, kad įklijuotumėte.

    Kaip pašalinti tuščias eilutes "Excel" programoje naudojant "Power Query

    Programose "Excel 2016" ir "Excel 2019" yra dar vienas būdas ištrinti tuščias eilutes - naudojant funkciją "Power Query". 2010 ir 2013 m. "Excel" ją galima atsisiųsti kaip priedą.

    Svarbi pastaba! Šis metodas veikia su šia išlyga: "Power Query" konvertuoja pradinius duomenis į "Excel" lentelę ir pakeičia formatavimą, pvz., užpildymo spalvą, apvadus ir kai kuriuos skaičių formatus. Jei jums svarbus pradinių duomenų formatavimas, geriau pasirinkite kitą būdą tuščioms eilutėms "Excel" pašalinti.

    1. Pasirinkite diapazoną, kuriame norite ištrinti tuščias eilutes.
    2. Eikite į Duomenys skirtukas> Gauti & amp; transformuoti grupę ir spustelėkite Iš lentelės / diapazono . Tai įkelia jūsų lentelę į "Power Query Editor".
    3. Dėl Pagrindinis "Power Query Editor" skirtuką, spustelėkite Pašalinti eilutes > Pašalinti tuščias eilutes .
    4. Spustelėkite Uždaryti & amp; Įkelti Gauta lentelė bus įkelta į naują darbalapį ir uždaromas užklausų redaktorius.

    Atlikus šias manipuliacijas gavau tokią lentelę be tuščių eilučių, tačiau su keliais nemaloniais pakeitimais - prarastas valiutos formatas ir datos rodomos numatytuoju, o ne pasirinktiniu formatu:

    Kaip ištrinti eilutes, jei tam tikro stulpelio ląstelė yra tuščia

    Šios pamokos pradžioje įspėjome, kad negalima šalinti tuščių eilučių pasirenkant tuščias vietas. Tačiau šis metodas praverčia, jei norite ištrinti eilutes pagal tušti langeliai konkrečiame stulpelyje. .

    Pavyzdžiui, pašalinkime visas eilutes, kuriose A stulpelio langelis yra tuščias:

    1. Pasirinkite pagrindinį stulpelį, mūsų atveju - A stulpelį.
    2. Dėl Pagrindinis skirtuką, spustelėkite Rasti ir pasirinkti > Pereiti į specialią . Arba paspauskite F5 ir spustelėkite Ypatingas... mygtuką.
    3. Į Pereiti į specialią dialogo langą, pasirinkite Ruošiniai ir spustelėkite GERAI . Tai leis pasirinkti tuščius langelius naudojamame A stulpelio diapazone.
    4. Dešiniuoju pelės klavišu spustelėkite bet kurią pasirinktą ląstelę ir pasirinkite Ištrinti... iš kontekstinio meniu.
    5. Į Ištrinti dialogo lange pasirinkite Visa eilutė ir spustelėkite OK.

    Atlikta! Eilučių, kuriose nėra A stulpelio reikšmės, nebėra:

    Tokį patį rezultatą galima pasiekti filtruojant tuščius langelius rakto stulpelyje.

    Kaip pašalinti papildomas eilutes po duomenimis

    Kartais eilutėse, kurios atrodo visiškai tuščios, iš tikrųjų gali būti tam tikrų formatų arba nespausdinamų simbolių. Norėdami patikrinti, ar paskutinė ląstelė su duomenimis iš tikrųjų yra paskutinė naudota jūsų darbalapio ląstelė, paspauskite Ctrl + End . Jei dėl to po duomenimis atsidūrė vizualiai tuščia eilutė, "Excel" požiūriu ta eilutė nėra tuščia. Norėdami pašalinti tokias eilutes, atlikite toliau nurodytus veiksmus:

    1. Spustelėkite pirmosios tuščios eilutės po duomenimis antraštę, kad ją pasirinktumėte.
    2. Paspauskite Ctrl + Shift + End. Taip bus pasirinktos visos eilutės, kuriose yra bet kas, įskaitant formatus, tarpus ir nespausdinamus simbolius.
    3. Dešiniuoju pelės klavišu spustelėkite pasirinkimą ir pasirinkite Ištrinti... > Visa eilutė.

    Jei turite palyginti nedidelį duomenų rinkinį, galbūt norėsite atsikratyti visų tuščių eilučių po duomenimis, pvz., kad būtų lengviau slinkti. Nors "Excel" nėra būdo ištrinti nenaudojamas eilutes, niekas netrukdo jums paslėpti štai kaip:

    1. Pasirinkite eilutę, esančią po paskutine eilute su duomenimis, spustelėdami jos antraštę.
    2. Paspauskite Ctrl + Shift + rodyklė žemyn, kad išplėstumėte pasirinkimą iki paskutinės lapo eilutės.
    3. Paspauskite Ctrl + 9, kad paslėptumėte pažymėtas eilutes. Arba dešiniuoju pelės klavišu spustelėkite pasirinktą eilutę, tada spustelėkite Paslėpti .

    Į panaikinti eilučių slėpimą , paspauskite Ctrl + A, kad pažymėtumėte visą lapą, tada paspauskite Ctrl + Shift + 9, kad visos linijos vėl būtų matomos.

    Panašiai galite paslėpti nenaudojamus tuščius stulpelius dešinėje duomenų pusėje. Išsamios instrukcijos pateikiamos skyriuje "Paslėpti nenaudojamas eilutes programoje "Excel", kad būtų matoma tik darbo sritis".

    Greičiausias būdas pašalinti tuščias eilutes "Excel" programoje

    Ar skaitant ankstesnius pavyzdžius neatrodė, kad veržiamės iš riešuto? Čia, "Ablebits", mes nenorime daryti dalykų sudėtingesnių, nei reikia. Todėl žengėme dar vieną žingsnį ir sukūrėme dviejų paspaudimų būdą tuščioms "Excel" eilutėms ištrinti.

    Į savo juostelę įtraukę "Ultimate Suite", galite ištrinti visas tuščias eilutes darbalapyje:

    1. Dėl "Ablebits" įrankiai skirtuke Transformuoti grupę, spustelėkite Ištrinti tuščius laukelius > Tuščios eilutės :
    2. Priedas informuos jus, kad iš aktyvaus darbalapio bus pašalintos visos tuščios eilutės, ir paprašys patvirtinti. Spustelėkite Gerai, ir po akimirkos visos tuščios eilutės bus pašalintos.

    Kaip parodyta toliau pateiktoje ekrano kopijoje, pašalinome tik visiškai tuščios eilutės kuriuose nėra nė vieno langelio su duomenimis:

    Jei norite sužinoti daugiau nuostabių funkcijų, įtrauktų į "Ultimate Suite for Excel", galite atsisiųsti bandomąją versiją.

    Dėkoju, kad perskaitėte, ir tikiuosi, kad kitą savaitę susitiksime mūsų tinklaraštyje!

    Michaelas Brownas yra atsidavęs technologijų entuziastas, mėgstantis supaprastinti sudėtingus procesus naudojant programinės įrangos įrankius. Turėdamas daugiau nei dešimtmetį patirtį technologijų pramonėje, jis patobulino savo įgūdžius „Microsoft Excel“ ir „Outlook“, taip pat „Google“ skaičiuoklėse ir dokumentuose. Michaelio tinklaraštis skirtas dalytis savo žiniomis ir patirtimi su kitais, jame pateikiami lengvai įgyvendinami patarimai ir vadovėliai, kaip pagerinti produktyvumą ir efektyvumą. Nesvarbu, ar esate patyręs profesionalas, ar pradedantysis, Michaelo tinklaraštyje rasite vertingų įžvalgų ir praktinių patarimų, kaip išnaudoti visas šių pagrindinių programinės įrangos įrankių galimybes.