Come eliminare le righe vuote in Excel con VBA, formule e Power Query

  • Condividi Questo
Michael Brown

Questa esercitazione vi insegnerà alcuni semplici trucchi per eliminare più righe vuote in Excel in modo sicuro, senza perdere nemmeno un bit di informazione. .

Le righe vuote in Excel sono un problema che tutti affrontiamo di tanto in tanto, soprattutto quando si combinano dati provenienti da fonti diverse o si importano informazioni da un altro luogo. Le righe vuote possono causare molti problemi ai fogli di lavoro a diversi livelli e la loro eliminazione manuale può essere un processo lungo e soggetto a errori. In questo articolo imparerete alcuni metodi semplici e affidabili per rimuovere gli spazi vuoti ini fogli di lavoro.

    Come NON rimuovere le righe vuote in Excel

    Esistono diversi modi per eliminare le righe vuote in Excel, ma sorprendentemente molte risorse online si attengono a quello più pericoloso, vale a dire Trova e seleziona > Vai allo speciale > Pezzi grezzi .

    Cosa c'è di sbagliato in questa tecnica? Seleziona tutti gli spazi vuoti in un intervallo e di conseguenza si finirà per eliminare tutte le righe che contengono anche una sola cella vuota.

    L'immagine sottostante mostra la tabella originale a sinistra e la tabella risultante a destra. Nella tabella risultante, tutte le righe incomplete sono scomparse, anche la riga 10 in cui mancava solo la data nella colonna D:

    In conclusione, se non volete rovinare i vostri dati, non eliminate mai le righe vuote selezionando le celle vuote, ma utilizzate uno degli approcci più ponderati descritti di seguito.

    Come rimuovere le righe vuote in Excel con VBA

    Il VBA di Excel può risolvere molti problemi, tra cui le righe vuote multiple. La cosa migliore di questo approccio è che non richiede alcuna competenza di programmazione: basta prendere uno dei codici seguenti ed eseguirlo in Excel (le istruzioni sono qui).

    Macro 1. Eliminare le righe vuote in un intervallo selezionato

    Questo codice VBA elimina silenziosamente tutte le righe vuote in un intervallo selezionato, senza mostrare alcun messaggio o finestra di dialogo all'utente.

    A differenza della tecnica precedente, la macro cancella una riga se l'opzione l'intera riga è vuota Si basa sulla funzione ContaA del foglio di lavoro per ottenere il numero di celle non vuote in ogni riga e quindi elimina le righe con il numero 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 Sub

    Per dare all'utente l'opportunità di selezionare l'intervallo di destinazione dopo l'esecuzione della macro , utilizzare questo codice:

    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

    All'esecuzione, la macro mostra la seguente casella di input, si seleziona l'intervallo di destinazione e si fa clic su OK:

    In un attimo, tutte le righe vuote nell'intervallo selezionato verranno eliminate e quelle rimanenti si sposteranno verso l'alto:

    Macro 2. Eliminare tutte le righe vuote in Excel

    Per rimuovere tutte le righe vuote sul foglio attivo , determina l'ultima riga dell'intervallo utilizzato (cioè la riga che contiene l'ultima cella con i dati), quindi procede verso l'alto eliminando le righe per le quali CountA restituisce 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. Cancellare la riga se la cella è vuota

    Con questa macro è possibile eliminare un'intera riga se una cella della colonna specificata è vuota.

    Il codice seguente verifica la presenza di spazi vuoti nella colonna A. Per eliminare le righe in base a un'altra colonna, sostituire "A" con una lettera appropriata.

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

    In effetti, la macro utilizza l'opzione Vai allo speciale > Pezzi grezzi e si può ottenere lo stesso risultato eseguendo questi passaggi manualmente.

    Nota: la macro elimina le righe vuote nel file foglio intero Per precauzione, è consigliabile eseguire un backup del foglio di lavoro prima di eseguire questa macro.

    Come rimuovere le righe vuote in Excel con VBA

    Per eliminare le righe vuote in Excel utilizzando una macro, potete inserire il codice VBA nella vostra cartella di lavoro o eseguire una macro dalla nostra cartella di lavoro di esempio.

    Aggiungere una macro alla cartella di lavoro

    Per inserire una macro nella cartella di lavoro, procedere come segue:

    1. Aprite il foglio di lavoro in cui volete eliminare le righe vuote.
    2. Premere Alt + F11 per aprire l'editor di Visual Basic.
    3. Nel riquadro di sinistra, fare clic con il pulsante destro del mouse su Questo libro di lavoro e quindi fare clic su Inserire > Modulo .
    4. Incollare il codice nella finestra Codice.
    5. Premere F5 per eseguire la macro.

    Per le istruzioni dettagliate, vedere Come inserire e utilizzare VBA in Excel.

    Eseguire una macro dalla cartella di lavoro di esempio

    Scaricate la nostra cartella di lavoro di esempio con le macro per eliminare le righe vuote ed eseguite una delle seguenti macro da lì:

    Cancellare le righe vuote - rimuove le righe vuote nell'intervallo attualmente selezionato.

    Rimuovi linee vuote - elimina le righe vuote e gli spostamenti in alto in un intervallo selezionato dall'utente dopo l'esecuzione della macro.

    CancellareTuttiGliEmptyRows - elimina tutte le righe vuote del foglio attivo.

    DeleteRowIfCellBlank - elimina una riga se una cella di una colonna specifica è vuota.

    Per eseguire la macro in Excel, procedere come segue:

    1. Aprire la cartella di lavoro scaricata e abilitare le macro, se richiesto.
    2. Aprite la vostra cartella di lavoro e passate al foglio di lavoro che vi interessa.
    3. Nel foglio di lavoro, premere Alt + F8, selezionare la macro e fare clic su Correre .

    Formula per eliminare le righe vuote in Excel

    Se volete vedere cosa state cancellando, usate la seguente formula per identificare le righe vuote:

    =IF(COUNTA(A2:D2)=0, "Vuoto", "Non vuoto")

    Dove A2 è la prima e D2 è l'ultima cella utilizzata della prima riga di dati.

    Inserire la formula in E2 o in qualsiasi altra colonna vuota della riga 2 e trascinare la maniglia di riempimento per copiare la formula verso il basso.

    Il risultato sarà "Vuoto" nelle righe vuote e "Non vuoto" nelle righe che contengono almeno una cella con dati:

    La logica della formula è ovvia: si contano le celle non vuote con la funzione COUNTA e si utilizza l'istruzione IF per restituire "Vuoto" se il conteggio è nullo, "Non vuoto" altrimenti.

    In effetti, si può fare tranquillamente a meno dell'IF:

    =COUNTA(A2:D2)=0

    In questo caso, la formula restituirà VERO per le righe vuote e FALSO per quelle non vuote.

    Con la formula pronta, eseguire i seguenti passaggi per eliminare le righe vuote:

    1. Selezionare una cella qualsiasi della riga di intestazione e fare clic su Ordinamento e filtro > Filtro sul Casa nella scheda Formati Questo aggiungerà le frecce a discesa di filtraggio a tutte le celle di intestazione.
    2. Fare clic sulla freccia nell'intestazione della colonna formula, deselezionare (Seleziona tutto), selezionare Vuoto e fare clic su OK :
    3. Selezionare tutte le righe filtrate, facendo clic sulla prima cella della prima riga filtrata e premendo Ctrl + Maiusc + Fine per estendere la selezione all'ultima cella dell'ultima riga filtrata.
    4. Fate clic con il tasto destro del mouse sulla selezione, scegliete Cancellare la riga dal menu contestuale e confermare che si desidera eliminare intere righe:
    5. Rimuovere il filtro premendo Ctrl + Shift + L . Oppure fare clic su Casa scheda> Ordinamento e filtro > Filtro .
    6. Eliminare la colonna con la formula, poiché non è più necessaria.

    Il risultato è una tabella pulita, senza righe vuote, ma con tutte le informazioni conservate:

    Suggerimento: invece di eliminare le righe vuote, si può copiare le righe non vuote Per farlo, filtrate le righe "non vuote", selezionatele e premete Ctrl + C per copiare, quindi passate a un altro foglio, selezionate la cella in alto a sinistra dell'intervallo di destinazione e premete Ctrl + V per incollare.

    Come rimuovere le righe vuote in Excel con Power Query

    In Excel 2016 e Excel 2019 c'è un altro modo per eliminare le righe vuote: utilizzare la funzione Power Query, che in Excel 2010 e Excel 2013 può essere scaricata come componente aggiuntivo.

    Nota importante: questo metodo funziona con la seguente avvertenza: Power Query converte i dati di origine in una tabella di Excel e ne modifica la formattazione, come il colore di riempimento, i bordi e alcuni formati di numeri. Se la formattazione dei dati originali è importante per voi, è meglio scegliere un altro metodo per rimuovere le righe vuote in Excel.

    1. Selezionare l'intervallo in cui si desidera eliminare le righe vuote.
    2. Vai al sito Dati scheda> Ottenere e trasformare e fare clic su Da Tabella/Ambito Questo caricherà la tabella nell'editor di Power Query.
    3. Sul Casa della scheda Power Query Editor, fare clic su Rimuovi righe > Rimuovere le righe vuote .
    4. Fare clic sul pulsante Chiudere e caricare Questa operazione carica la tabella risultante in un nuovo foglio di lavoro e chiude l'Editor Query.

    Come risultato di queste manipolazioni, ho ottenuto la seguente tabella senza righe vuote, ma con un paio di cambiamenti spiacevoli: il formato della valuta è andato perso e le date sono visualizzate nel formato predefinito invece che in quello personalizzato:

    Come eliminare le righe se la cella di una certa colonna è vuota

    All'inizio di questa esercitazione abbiamo sconsigliato di rimuovere le righe vuote selezionando gli spazi vuoti. Tuttavia, questo metodo è utile se si desidera eliminare righe basate su spazi vuoti in una colonna specifica .

    Ad esempio, eliminiamo tutte le righe in cui una cella della colonna A è vuota:

    1. Selezionare la colonna chiave, la colonna A nel nostro caso.
    2. Sul Casa fare clic su Trova e seleziona > Vai allo speciale Oppure premere F5 e fare clic sul pulsante Speciale... pulsante.
    3. Nel Vai allo speciale selezionare la finestra di dialogo Pezzi grezzi e fare clic su OK In questo modo si selezionano le celle vuote nell'intervallo utilizzato nella colonna A.
    4. Fare clic con il tasto destro del mouse su una cella selezionata e scegliere Cancellare... dal menu contestuale.
    5. Nel Cancellare scegliere la finestra di dialogo Intera fila e fare clic su OK.

    Le righe che non hanno un valore nella colonna A non ci sono più:

    Lo stesso risultato può essere ottenuto filtrando gli spazi vuoti nella colonna delle chiavi.

    Come rimuovere le righe extra sotto i dati

    A volte, le righe che sembrano completamente vuote possono in realtà contenere alcuni formati o caratteri non stampabili. Per verificare se l'ultima cella con i dati è davvero l'ultima cella utilizzata nel foglio di lavoro, premete Ctrl + Fine . Se questo vi ha portato a una riga visivamente vuota sotto i dati, in termini di Excel, quella riga non è vuota. Per rimuovere tali righe, procedete come segue:

    1. Fare clic sull'intestazione della prima riga vuota sotto i dati per selezionarla.
    2. Premere Ctrl + Shift + Fine per selezionare tutte le righe che contengono qualsiasi cosa, compresi formati, spazi e caratteri non stampati.
    3. Fate clic con il tasto destro del mouse sulla selezione e scegliete Cancellare... > Intera fila.

    Se avete un insieme di dati relativamente piccolo, potreste voler eliminare tutte le righe vuote sotto i dati, ad esempio per facilitare lo scorrimento. Anche se non c'è modo di eliminare le righe inutilizzate in Excel, nulla vieta di eliminare le righe inutilizzate. nascondersi Ecco come:

    1. Selezionare la riga sotto l'ultima riga con i dati facendo clic sulla sua intestazione.
    2. Premere Ctrl + Maiusc + Freccia giù per estendere la selezione all'ultima riga del foglio.
    3. Premere Ctrl + 9 per nascondere le righe selezionate. Oppure fare clic con il tasto destro del mouse sulla selezione, quindi fare clic su Nascondere .

    A nascondere le righe , premere Ctrl + A per selezionare l'intero foglio, quindi premere Ctrl + Maiusc + 9 per rendere nuovamente visibili tutte le linee.

    In modo analogo, è possibile nascondere le colonne vuote inutilizzate a destra dei dati. Per i passaggi dettagliati, vedere Nascondere le righe inutilizzate in Excel in modo che sia visibile solo l'area di lavoro.

    Il modo più veloce per rimuovere le righe vuote in Excel

    Leggendo gli esempi precedenti, non vi è sembrato che stessimo usando una mazza per rompere una noce? Qui, in Ablebits, preferiamo non rendere le cose più complesse del necessario. Quindi, abbiamo fatto un ulteriore passo avanti e abbiamo creato un percorso con due clic per eliminare le righe vuote in Excel.

    Con l'aggiunta della Ultimate Suite al nastro, ecco come è possibile eliminare tutte le righe vuote in un foglio di lavoro:

    1. Sul Strumenti Ablebits nella scheda Trasformazione gruppo, fare clic su Cancellare gli spazi vuoti > Righe vuote :
    2. Il componente aggiuntivo informa che tutte le righe vuote verranno rimosse dal foglio di lavoro attivo e chiede di confermare. Fare clic su OK e in un attimo tutte le righe vuote verranno eliminate.

    Come mostrato nella schermata sottostante, abbiamo rimosso solo righe assolutamente vuote che non hanno una sola cella con dati:

    Per scoprire le fantastiche funzioni incluse nella nostra Ultimate Suite for Excel, potete scaricare una versione di prova.

    Vi ringrazio per la lettura e spero di vedervi sul nostro blog la prossima settimana!

    Michael Brown è un appassionato di tecnologia dedicato con una passione per la semplificazione di processi complessi utilizzando strumenti software. Con oltre un decennio di esperienza nel settore tecnologico, ha affinato le sue competenze in Microsoft Excel e Outlook, nonché in Fogli Google e Documenti. Il blog di Michael è dedicato alla condivisione delle sue conoscenze e competenze con gli altri, fornendo suggerimenti e tutorial facili da seguire per migliorare la produttività e l'efficienza. Che tu sia un professionista esperto o un principiante, il blog di Michael offre spunti preziosi e consigli pratici per ottenere il massimo da questi strumenti software essenziali.