Kris ha un foglio di lavoro in cui ci sono un gran numero di righe vuote nei dati. Sta cercando una semplice macro che elimini tutte le righe completamente vuote.

Esistono diversi modi per eseguire questa operazione. Le sezioni seguenti esaminano tutte le varie idee per sbarazzarsi di quelle file fastidiose.

Selezione di spazi vuoti

Un modo rapido per controllare dove si trovano gli spazi vuoti è selezionare semplicemente gli spazi nei tuoi dati. Segui questi passaggi:

  1. Seleziona tutti i dati con cui stai lavorando.

  2. Premi F5. Excel visualizza la finestra di dialogo Vai a.

  3. Fare clic su Speciale. Excel visualizza la finestra di dialogo Vai a speciale. (Vedi figura 1.)

  4. Scegli il pulsante di opzione Blanks.

  5. Fare clic su OK. Excel seleziona quelle celle nell’intervallo iniziale (passaggio 1)

che sono vuoti.

  1. Visualizza la scheda Home della barra multifunzione.

  2. Fare clic sullo strumento Elimina. Excel elimina le righe.

C’è un enorme avvertimento nell’adottare questo approccio: eliminerà tutte le righe in cui qualsiasi cella è vuota. In altre parole, questo approccio è migliore se gli unici spazi vuoti nei dati si trovano nelle righe che si desidera effettivamente eliminare.

Se ci sono alcune celle vuote intervallate tra i dati che vuoi davvero conservare, non utilizzare questo metodo, poiché eliminerà anche quelle righe.

Sorting

Se i tuoi dati non sono costituiti da molte righe (ad esempio, solo dieci colonne o meno), potresti prendere in considerazione l’ordinamento dei dati. Se includi ciascuna colonna nella specifica di ordinamento, ti ritroverai con le righe vuote tutte adiacenti e potrai facilmente eliminarle.

Se ci sono molte colonne nei tuoi dati e non ti dispiace aggiungere una colonna helper, puoi eliminare le righe vuote in una variazione del metodo di ordinamento. Supponiamo che i tuoi dati siano nelle colonne dalla A alla P. Nella colonna Q, inserisci una di queste formule:

=COUNTA(A1:P1)

=IF(COUNTBLANK(A1:P1)=16,"DELETE","")

Non importa quale usi; entrambi ti forniranno informazioni su cui lavorare. Nel caso della formula COUNTA, devi semplicemente ordinare in base alla colonna Q ed eliminare qualsiasi cosa con uno 0 in quella colonna.

Nel caso della formula COUNTBLANK, ti consigliamo di modificare il valore equiparato (16) a tutte le colonne che stai tenendo in considerazione dalla funzione COUNTBLANK. (In questo caso, 16 è il numero di colonne nell’intervallo A: P, incluso.) Dopo che la formula è a posto, puoi ordinare per colonna Q, quindi elimina semplicemente tutte le righe che hanno la parola “DELETE” in quella colonna .

Un’altra variante dell’approccio di ordinamento consiste nell’usare semplicemente le funzionalità di filtro di Excel per filtrare l’elenco in modo che contenga solo spazi vuoti in una delle colonne di dati. (Ad esempio, potresti filtrare gli spazi vuoti nella colonna A.) Puoi quindi ordinare le colonne rimanenti in modo da avere intere righe vuote in un unico posto e quindi eliminare quelle righe.

Macros

Se devi eliminare righe vuote abbastanza spesso, ti consigliamo di prendere seriamente in considerazione l’utilizzo di una macro per svolgere il duro lavoro. La tua macro potrebbe essere facilmente aggiunta alla barra multifunzione o assegnata a un tasto di scelta rapida in modo da poterla richiamare molto facilmente.

In precedenza in questo suggerimento ho detto che potresti, se lo desideri, utilizzare la finestra di dialogo Vai a speciale per selezionare celle vuote nell’intervallo dei tuoi dati e quindi eliminare le righe in cui si trovano quelle celle vuote. Puoi fare la stessa cosa in una semplice macro:

Sub DeleteBlanks()

Dim R As Range

Set R = Range("A1:" & ActiveCell.SpecialCells(xlLastCell).Address)

R.SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub

Ricorda, tuttavia, che questa macro eliminerà tutte le righe su cui sono presenti spazi vuoti, anche se desideri mantenere altri dati che potrebbero trovarsi su quella riga.

Un approccio migliore sarebbe fare un controllo più completo su ogni riga del foglio di lavoro:

Sub DeleteBlankRows()

Dim lRows As Long     Dim J As Long

lRows = ActiveCell.SpecialCells(xlLastCell).Row     Application.ScreenUpdating = False     For J = lRows To 1 Step -1         If WorksheetFunction.CountA(Rows(J)) = 0 Then Rows(J).Delete     Next J     Application.ScreenUpdating = True End Sub

Si noti che la macro determina l’ultima cella utilizzata nella cartella di lavoro e imposta il valore lRows uguale alla riga in cui si trova quella cella. Un ciclo For …​ Next quindi passa attraverso ogni riga (dall’ultima alla prima)

e utilizza la funzione CONTA.VALORI per determinare se c’è qualcosa su quella riga. In caso contrario, la riga viene eliminata.

_Nota: _

Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.

ExcelTips è la tua fonte di formazione economica su Microsoft Excel.

Questo suggerimento (254) si applica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 e Excel in Office 365.