Vai al contenuto principale

Come filtrare un elenco ed eliminare le restanti righe nascoste o visibili in Excel?

Per un elenco filtrato, potrebbe essere necessario eliminare le righe nascoste o visibili per conservare solo i dati utili. In questo articolo, ti mostreremo i metodi per eliminare le restanti righe nascoste o visibili di un elenco filtrato in Excel.

Elimina le righe nascoste nel foglio di lavoro attivo con codice VBA
Elimina le righe visibili dell'elenco filtrato selezionando tutte le celle visibili
Elimina facilmente le righe nascoste o visibili dell'elenco filtrato con Kutools per Excel


Elimina le righe nascoste nel foglio di lavoro attivo con codice VBA

Questa sezione ti mostrerà il codice VBA per eliminare le righe nascoste nel foglio attivo. Si prega di fare quanto segue.

1. Attivare il foglio di lavoro necessario per eliminare le righe nascoste, premere altro + F11 tasti contemporaneamente per aprire il file Microsoft Visual Basic, Applications Edition finestra.

2. Nella finestra Microsoft Visual Basic, Applications Edition, fare clic su inserire > Moduli. Quindi copia e incolla il codice VBA sottostante nella finestra del modulo.

Codice VBA: elimina le righe nascoste

Sub RemoveHiddenRows()
	Dim xRow As Range
	Dim xRg As Range
	Dim xRows As Range
	On Error Resume Next
	Set xRows = Intersect(ActiveSheet.Range("A:A").EntireRow, ActiveSheet.UsedRange)
	If xRows Is Nothing Then Exit Sub
		For Each xRow In xRows.Columns(1).Cells
			If xRow.EntireRow.Hidden Then
				If xRg Is Nothing Then
					Set xRg = xRow
				Else
					Set xRg = Union(xRg, xRow)
				End If
			End If
		Next
		If Not xRg Is Nothing Then
			MsgBox xRg.Count & " hidden rows have been deleted", , "Kutools for Excel"
			xRg.EntireRow.Delete
		Else
			MsgBox "No hidden rows found", , "Kutools for Excel"
		End If
	End Sub

3. premi il F5 chiave per eseguire il codice. Se ci sono righe nascoste nel foglio attivo, dopo aver eseguito il codice, verrà visualizzata una finestra di dialogo per dirti quante righe nascoste sono state eliminate. Clicca il OK pulsante per eliminare le righe nascoste. Vedi screenshot:

doc elimina resto 1

In caso contrario, dopo aver eseguito il codice verrà visualizzata la seguente finestra di dialogo.

doc elimina resto 1

Note:: il codice VBA sopra non solo può eliminare le righe nascoste dell'elenco filtrato, ma anche eliminare le righe nascoste che hai nascosto manualmente in precedenza.


Elimina le righe visibili dell'elenco filtrato selezionando la funzione di tutte le celle visibili

Per eliminare le righe visibili dell'elenco filtrato, eseguire le operazioni seguenti.

1. Selezionare tutte le righe filtrate e premere F5 chiave per aprire il Vai finestra di dialogo, quindi fare clic su Special pulsante. Vedi screenshot:

doc elimina resto 1

2. Nel Vai a speciale finestra di dialogo, selezionare Solo celle visibili opzione, quindi fare clic su OK pulsante.

doc elimina resto 1

3. Ora tutte le righe visibili sono selezionate, fare clic con il pulsante destro del mouse sulla selezione, quindi fare clic Elimina righe.

doc elimina resto 1

Fino ad ora, tutte le righe visibili vengono eliminate dall'elenco filtrato.


Elimina facilmente le righe nascoste o visibili dell'elenco filtrato con Kutools per Excel

I due metodi precedenti potrebbero non essere le soluzioni desiderate per molti utenti di Excel, qui ti presentiamo uno strumento utile. Grazie alla Elimina righe e colonne nascoste (visibili) utilità di Kutools for Excel, puoi eliminare facilmente le righe nascoste nell'intervallo / fogli selezionati, nel foglio attivo o in tutti i fogli di lavoro in Excel.

Prima di applicare Kutools for Excel, Per favore scaricalo e installalo prima.

1. Se desideri eliminare solo le righe nascoste o visibili di un elenco filtrato, seleziona manualmente l'intervallo filtrato, quindi fai clic su Kutools > Elimina > Elimina righe e colonne nascoste (visibili). Vedi screenshot:

2. Nel Elimina righe e colonne nascoste (visibili) finestra di dialogo, mantenere il file Nell'intervallo selezionato selezionato nel Guarda dentro elenco a discesa (puoi selezionare altre opzioni di cui hai bisogno), controlla il file Righe opzione nel Elimina tipo sezione e nel file Tipo dettagliato sezione, controllare Righe visibili or Righe nascoste opzione di cui hai bisogno. E infine fare clic su OK pulsante.

3. Quindi viene visualizzata una finestra di dialogo per indicare quante righe sono state eliminate, fare clic su OK pulsante.

  Se desideri avere una prova gratuita (30 giorni) di questa utility, fare clic per scaricarlo, quindi andare ad applicare l'operazione secondo i passaggi precedenti.


Elimina le righe nascoste o visibili dell'elenco filtrato con Kutools per Excel

I migliori strumenti per la produttività in ufficio

Funzioni popolari: Trova, evidenzia o identifica i duplicati   |  Elimina righe vuote   |  Combina colonne o celle senza perdere dati   |   Round senza formula ...
Super ricerca: VLookup a criteri multipli    VLookup a valori multipli  |   VLookup su più fogli   |   Ricerca fuzzy ....
Elenco a discesa avanzato: Crea rapidamente un elenco a discesa   |  Elenco a discesa dipendente   |  Elenco a discesa a selezione multipla ....
Gestore di colonna: Aggiungi un numero specifico di colonne  |  Sposta colonne  |  Attiva/disattiva lo stato di visibilità delle colonne nascoste  |  Confronta intervalli e colonne ...
Funzionalità in primo piano: Messa a fuoco della griglia   |  Vista di progettazione   |   Grande barra delle formule    Gestore di cartelle di lavoro e fogli   |  Resource Library (Testo automatico)   |  Date picker   |  Combina fogli di lavoro   |  Crittografa/decrittografa le celle    Invia e-mail per elenco   |  Super filtro   |   Filtro speciale (filtro grassetto/corsivo/barrato...) ...
I 15 migliori set di strumenti12 Testo Strumenti (aggiungi testo, Rimuovi personaggi, ...)   |   Più di 50 Grafico Tipi (Diagramma di Gantt, ...)   |   40+ Pratico Formule (Calcola l'età in base al compleanno, ...)   |   19 Inserimento Strumenti (Inserisci il codice QR, Inserisci immagine dal percorso, ...)   |   12 Conversione Strumenti (Numeri in parole, Conversione di valuta, ...)   |   7 Unisci e dividi Strumenti (Combina righe avanzate, Celle divise, ...)   |   ... e altro ancora

Potenzia le tue competenze di Excel con Kutools per Excel e sperimenta l'efficienza come mai prima d'ora. Kutools per Excel offre oltre 300 funzionalità avanzate per aumentare la produttività e risparmiare tempo.  Fai clic qui per ottenere la funzionalità di cui hai più bisogno...

scheda kte 201905


Office Tab porta l'interfaccia a schede in Office e semplifica notevolmente il tuo lavoro

  • Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Apri e crea più documenti in nuove schede della stessa finestra, piuttosto che in nuove finestre.
  • Aumenta la produttività del 50% e riduce ogni giorno centinaia di clic del mouse!
Comments (7)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Hi this VBA code is awesome useful.
This comment was minimized by the moderator on the site
Thanks for the info. This has been instructive. Please is there a way to filter and delete for specific numbers in rows of up to 1 million? Can the code above be modified to do so?
This comment was minimized by the moderator on the site
Hi,
Sorry did not test the code in such huge row data. Maybe you can make a copy of your data and test if the code can work.
This comment was minimized by the moderator on the site
VBA code to Delete hidden rows worked perfectly with no fiddling. THANK YOU!!
This comment was minimized by the moderator on the site
Feedback re: the macro for hidden row deletions - this takes too long to run on 900k rows to be useful. 2+ hours on an OC'd Threadripper 1950X and still running (had to end task). Any way to optimize it to use multiple cores or is this a VBA limitation?
This comment was minimized by the moderator on the site
Hi,
The code has been optimized. Please have a try. Thank you for your comment.

Sub RemoveHiddenRows()
Dim xFlag As Boolean
Dim xStr, xTemp As String
Dim xDiv, xMod As Long
Dim I, xCount, xRows As Long
Dim xRg, xCell, xDRg As Range
Dim xArr() As String
On Error Resume Next
Application.ScreenUpdating = False
Application.EnableEvents = False
Set xRg = Intersect(ActiveSheet.Range("A:A").EntireRow, ActiveSheet.UsedRange)
If xRg Is Nothing Then Exit Sub
xRows = xRg.Rows.Count
Set xRg = xRg(1)
xFlag = True
xTemp = ""
xCount = 0
For I = 1 To xRows
Set xCell = xRg.Offset(I - 1, 0)
Do While xFlag
If xCell.EntireRow.Hidden Then
xStr = xCell.Address
xFlag = False
Else
GoTo Ctn
End If
Loop
If xCell.EntireRow.Hidden Then
xTemp = xStr & "," & xCell.Address
End If
If Len(xTemp) > 171 Then
xCount = xCount + 1
ReDim Preserve xArr(1 To xCount)
xArr(xCount) = xStr
xStr = xCell.Address
Else
xStr = xTemp
End If
Ctn:
Next
xCount = xCount + 1
ReDim Preserve xArr(1 To xCount)
xArr(xCount) = xStr
For I = xCount To 1 Step -1
If I = 1 Then
xStr = Mid(xArr(I), InStr(xArr(I), ",") + 1, Len(xArr(I)) - InStr(xArr(I), ","))
Else
xStr = xArr(I)
End If
If xDRg Is Nothing Then
Set xDRg = Range(xStr)
Else
Set xDRg = Union(xDRg, Range(xStr))
End If
If (Len(xDRg.Address) >= 244) Or (xCount = 1) Then
xDRg.EntireRow.Delete
Set xDRg = Nothing
End If
Next
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
This comment was minimized by the moderator on the site
Awesome, thank you! Will review at my next opportunity / need for this and reply back.
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations