När ett Excel- kalkylblad växer till att omfatta tusentals , eller till och med hundratusentals , rader , manuellt ta bort varje rad skulle ta evigheter . Även en snabb sort skulle bara flytta varje tom rad till botten , i huvudsak " bort " det , kommer detta inte att fungera om du behöver uppgifterna för att stanna i sin nuvarande ordning . För att ta bort tomma rader utan att ändra ordningen på ett kalkylblad , måste du komma Excel Visual Basic konsol och skapa ett makro . Instruktioner
1
Öppna Excel-ark som du behöver vill arbeta med . Tryck sedan på " Alt " och " F11 " för att öppna upp den Visual Basic -konsolen .
2
Högerklicka på någon av posterna under " VBAProject " rubrik på vänster sida av VBA -konsolen . Flytta musen över " Infoga " och välj " Modul " från listan med alternativ . Din nya modulen kommer automatiskt att väljas , och den högra halvan av konsolen kommer att bli en tom vit sida . Om du har flera kalkylblad öppna , vara säker på att du lägger till modulen till rätt " VBAProject . " Namnet på det särskilda dokumentet kommer att ligga till höger om " VBAProject " rubrik Kopiera följande kod till toppen av den tomma modulen sidan
3
: .
Sub DeleteBlankRows ( ) katalog
Dim x As Long
Med Application
. Beräkning = xlCalculationManual
. ScreenUpdating = False End
med
" Sub " kommandot skapar makrot och " Dim " kommandot upprättas en variabel som du kommer att använda senare . Den " Beräkning " och " ScreenUpdating " kommandon stänga av sina respektive funktioner , vilket gör det köras smidigt på stora kalkylblad
4
Klistra in följande kod direkt under den sista uppsättningen : .
med ActiveSheet
Cells.Replace _
Vad : = " " , Ersättare: = " " , _
lookat : = xlWhole , MatchCase : = False
För x = . Cells.SpecialCells ( xlCellTypeLastCell ) . Rad _
1 Step -1
p Om WorksheetFunction.CountA ( . rader ( x ) ) = 0 Then
< p> ActiveSheet.Rows (x) . Radera
End If
Nästa
End With
" Cells.Replace " kommandot, vilket inkluderar två rader direkt under det , ser att alla celler som bara innehåller ett mellanslag , och ersätter det utrymmet med ingenting . Raderingen erkänner inte ett tomt utrymme som en tom cell , så utan denna bit kod , skulle varje rad med bara ett tomt utrymme inte få bort . Den " Skicka " -kommandot har koden starten på den sista cellen på bladet och arbeta sig tillbaka upp till toppen . Den " Om " uttalande kontrollerar om raden är tom , och sedan raderar den om den är
5
Kopiera och klistra in följande kod direkt under den sista biten av koden : .
Med Application
. Beräkning = xlCalculationAutomatic
. ScreenUpdating = Sant End
End Sub
koden helt enkelt sätter den " Beräkning " och " ScreenUpdating " inställningar tillbaka till det normala och sedan stänger ut koden med " End Sub . " Tryck på " Alt " och " F11 " för att avsluta VBA konsolen . Alla dina ändringar sparas automatiskt .
6
Klicka på " Utvecklare " fliken längst upp på skärmen . Klicka på " Macro " -knappen för att få upp en lista över dina makron . Välj " DeleteBlankRows " makro och tryck på " Kör". Makrot raderar alla tomma rader från ett kalkylblad .