Sommario
Se state cercando alcuni dei modi più semplici per eliminare le righe utilizzando VBA , allora siete nel posto giusto.
Entriamo nel vivo dell'articolo principale.
Scarica il libro di lavoro
VBA Elimina riga.xlsm14 modi per cancellare una riga con VBA
Qui sono presenti tre tabelle di dati per mostrare i modi di cancellare le righe utilizzando VBA La prima tabella contiene alcune Prodotti di un'azienda e le loro Dimensioni , Prezzi .
Il secondo ha alcuni Codici prodotto e i loro corrispondenti Dimensioni del prodotto e Prezzi
E l'ultimo contiene alcuni Nomi dei progetti e i rispettivi Date di inizio e Costi .
Per creare l'articolo, ho utilizzato Microsoft Excel 365 è possibile utilizzare qualsiasi altra versione in base alle proprie esigenze.
Metodo-1: eliminare una singola riga con VBA
Supponiamo che si voglia eliminare la riga contenente Prodotto Scarpa 1, e per eliminare questa singola riga si può seguire questo metodo.
Passo-01 :
Vai a Sviluppatore Scheda Visual Basic Opzione
Poi, il Editor Visual Basic si aprirà.
Vai a Inserire Scheda Modulo Opzione
Successivamente, un Modulo verrà creato.
Passo-02 :
➤Scrivete il seguente codice
Sub dltrow1() Worksheets("Single").Rows(7).EntireRow.Delete End Sub
Qui, "Singolo" è il nome del foglio di lavoro e Righe(7) selezionerà il numero di riga.
.EntireRow.Delete cancellerà l'intera riga 7.
➤Stampa F5
Risultato :
In questo modo, si eliminerà la riga contenente l'elemento Prodotto nome Scarpa 1 .
Per saperne di più: Come eliminare le righe in Excel: 7 metodi
Metodo-2: Cancellare più righe con VBA
Se si desidera eliminare più righe, come le righe che contengono l'elemento Prodotto nomi Scarpa1 , Scarpa2, e Scarpa3 è possibile seguire questa procedura VBA codice.
Passo-01 :
➤Segui Passo-01 di Metodo-1
Sub dltrow2() Righe(13).EntireRow.Delete Righe(10).EntireRow.Delete Righe(7).EntireRow.Delete End Sub
In questo caso, i numeri di riga 13, 10 e 7 verranno eliminati e per scrivere i numeri di riga in modo seriale è necessario scrivere dall'ultimo numero di riga al primo numero di riga, come in questo codice.
Altrimenti, dopo aver eliminato la prima riga, come la riga 7, le righe rimanenti sotto questa riga si sposteranno di una riga verso l'alto e quindi la riga 10 diventerà la riga 9 e la riga 13 diventerà la riga 12. Per questo motivo, non sarà possibile eliminare le righe corrette.
➤Stampa F5
Risultato :
Quindi, si cancelleranno le righe contenenti i dati Prodotto nomi Scarpa 1 , Scarpa2, e Scarpa3 .
Per saperne di più: Come eliminare più righe in Excel (3 metodi)
Metodo 3: Eliminare una riga selezionando
Qui mostrerò come eliminare una riga rispetto a una cella attiva di quella riga.
Passo-01 :
➤Segui Passo-01 di Metodo-1
Sub dltrow3() ActiveCell.EntireRow.Delete End Sub
Eliminerà la riga con una cella attiva.
➤Salvare il codice.
Passo-02 :
➤Selezionare una cella qualsiasi della riga che si desidera eliminare (qui ho selezionato la cella B7 )
Vai a Sviluppatore Scheda Macro Opzione
Dopo di che, il Macro Si aprirà la procedura guidata.
➤Selezionare la voce Nome della macro dltrow3 e premere Correre
Risultato :
In seguito, si cancellerà la riga contenente il file Prodotto nome Scarpa 1 .
Metodo 4: Eliminazione di tutte le righe della selezione
Per eliminare tutte le righe di una selezione si può seguire questo metodo.
Passo-01 :
➤Segui Passo-01 di Metodo-1
Sub dltrow4() Selection.EntireRow.Delete Fine Sub
Eliminerà tutte le righe della selezione.
➤Salvare il codice.
Passo-02 :
➤Selezionare l'intervallo di righe che si desidera eliminare (qui ho selezionato l'intervallo B7:D9 )
Vai a Sviluppatore Scheda Macro Opzione
Successivamente, il Macro Si aprirà la procedura guidata.
➤Selezionare la voce Nome della macro dltrow4 e premere Correre
Risultato :
Quindi, si cancelleranno le righe contenenti i dati Prodotto nomi Scarpa 1 , Giacca1, e Giacca2 .
Per saperne di più: Come eliminare le righe selezionate in Excel (8 approcci)
Metodo 5: eliminazione di una riga se una cella è vuota
Qui ho una cella vuota che è B9 (ho rimosso il valore da questa cella per questo metodo), e utilizzando un VBA cancellerò la riga che ha B9 cellulare.
Passo-01 :
➤Segui Passo-01 di Metodo-1
Sub dltrow5() Range("B5:D13").SpecialCells(xlCellTypeBlanks).EntireRow.Delete Fine Sub
Eliminerà tutte le righe nell'intervallo "B5:D13" con qualsiasi cella vuota.
➤Stampa F5
Risultato :
A questo punto sarà possibile eliminare la riga contenente la cella vuota.
Per saperne di più: Come rimuovere le righe vuote in Excel (11 metodi)
Metodo 6: eliminazione di una riga se l'intera riga è vuota
Qui ho una cella vuota che è B9 (ho rimosso i valori per questo metodo), e una riga vuota che è la riga 12 (ho rimosso i valori per questo metodo), e utilizzando un metodo VBA e il codice Funzione COUNTA Eliminerò la riga che è vuota.
Passo-01 :
➤Segui Passo-01 di Metodo-1
Sub dltrow6() Dim cell As Range For Each cell In Range("B5:D13") If Application.WorksheetFunction.CountA(cell.EntireRow) = 0 Then cell.EntireRow.Delete End If Next cell End Sub
"B5:D13" è l'intervallo di dati e PER Il ciclo funzionerà per ogni cella dell'intervallo.
CountA(cell.EntireRow) restituisce il numero di celle non vuote e quando diventa 0 la riga viene eliminata.
➤Stampa F5
Risultato :
In seguito, sarà possibile eliminare la riga vuota, ma non verrà eliminata nessuna riga che non abbia tutte le celle di questa riga vuote.
Per saperne di più: Come usare VBA per eliminare le righe vuote in Excel
Metodo 7: eliminazione di ogni nesima riga
È possibile eliminare ogni nesima riga (in questo caso ogni terza riga) seguendo questo metodo.
Passo-01 :
➤Segui Passo-01 di Metodo-1
Sub dltrow7() rc = Range("B5:D13").Rows.Count For i = rc To 1 Step -3 Range("B5:D13").Rows(i).EntireRow.Delete Next i End Sub
"B5:D13" è l'intervallo di dati e rc restituirà il numero totale di righe di questo intervallo che è 9 .
Qui, il PER Il ciclo partirà dall'ultima riga che è rc o 9 in questo caso e termina con la prima riga.
Fase -3 aiuterà a cancellare ogni 3a riga in questo intervallo.
➤Stampa F5
Risultato :
Quindi, si cancelleranno le righe che contengono i campi Prodotto nomi Scarpa 1 , Scarpa2, e Scarpa3 .
Per saperne di più: Come cancellare ogni ennesima riga in Excel (i 6 modi più semplici)
Letture simili:
- Come eliminare le righe selezionate con Excel VBA (guida passo-passo)
- Eliminare le righe inutilizzate in Excel (8 modi semplici)
- Come eliminare le righe nascoste in Excel (3 metodi)
- Cancellare infinite righe in Excel (5 modi semplici)
- Come eliminare le righe di Excel che non finiscono mai (4 modi semplici)
Metodo-8: eliminazione della riga in base al valore della cella
In questo metodo, cancellerò la riga che ha un valore specifico Camicia 2 .
Passo-01 :
➤Segui Passo-01 di Metodo-1
Sub dltrow8() Dim cell As Range For Each cell In Range("B5:D13") If cell.Value = "Shirt 2" Then cell.EntireRow.Delete End If Next cell End Sub
"B5:D13" è l'intervallo di dati e il valore PER Il ciclo funzionerà per ogni cella dell'intervallo.
Se una cella di una riga contiene il valore "Camicia 2" allora la riga verrà cancellata.
➤Stampa F5
Risultato :
In questo modo, si eliminerà la riga contenente l'elemento Prodotto nome Camicia 2 .
Per saperne di più: Macro VBA per eliminare la riga se la cella contiene un valore in Excel (2 metodi)
Metodo-9: Eliminare le righe duplicate
Qui, ho due righe che hanno un Codice prodotto 97375 e quindi voglio eliminare una di queste righe che sono contrassegnate da un riquadro rosso.
Passo-01 :
➤Segui Passo-01 di Metodo-1
Sub dltrow9() Range("B5:D13").RemoveDuplicates Columns:=1 End Sub
Qui, "B5:D13" è l'intervallo di dati e Colonne:=1 significa che cercherà i valori duplicati solo in una colonna, che è quella di partenza. Colonna B ma se si desidera cercare anche in altre colonne, è possibile utilizzare questo numero in base alle proprie esigenze.
➤Stampa F5
Risultato :
Successivamente, sarà possibile eliminare la riga simile a un'altra.
Per saperne di più: Come eliminare le righe duplicate in Excel con VBA (8 modi efficaci)
Metodo 10: Eliminazione di righe in una tabella
Supponiamo di avere la seguente tabella il cui nome è Tabella1 e ora si vuole eliminare la riga numero 6 di questa tabella. Per farlo, si può seguire questo metodo.
Passo-01 :
➤Segui Passo-01 di Metodo-1
Sub dltrow10() ActiveWorkbook.Worksheets("Table").ListObjects("Table1").ListRows(6).Delete End Sub
Qui, "Tavolo" è il nome del foglio, "Tabella1" è il nome della tabella e 6 è il numero di riga della tabella che si vuole eliminare.
➤Stampa F5
Risultato :
In questo modo, si eliminerà la riga desiderata di questa tabella.
Per saperne di più: Come rimuovere le righe duplicate sulla base di una colonna utilizzando Excel VBA
Metodo-11: Eliminazione delle righe visibili dopo il filtraggio
Qui ho una tabella di dati che è filtrata dall'elemento Prezzo per valori superiori a $1,500.00 e voglio eliminare tutte le righe visibili dopo il filtraggio.
Passo-01 :
➤Segui Passo-01 di Metodo-1
Sub dltrow11() Range("B5:D13").SpecialCells(xlCellTypeVisible).EntireRow.Delete Fine Sub
Qui, "B5:D13" è l'intervallo di dati.
➤Stampa F5
A questo punto, tutte le righe visibili dopo il filtraggio saranno cancellate. È ora possibile riportare le righe nascoste selezionando il pulsante Filtro segno nel Prezzo colonna.
➤Fare clic sul pulsante Seleziona tutti opzione
➤Stampa OK
Risultato :
Infine, le righe nascoste torneranno nella tabella dei dati.
Per saperne di più: Come filtrare ed eliminare le righe con VBA in Excel (2 metodi)
Metodo 12: Eliminazione della riga in base all'ultima cella attiva
Qui, l'ultima cella attiva è la cella B13 e voglio cancellarla avendo l'ultima cella attiva della seguente tabella di dati.
Passo-01 :
➤Segui Passo-01 di Metodo-1
Sub dltrow12() Cells(Rows.Count, 2).End(xlUp).EntireRow.Delete End Sub
Qui, 2 mezzi Colonna B su cui ho il mio cellulare attivo, è possibile modificare il numero in base alle proprie esigenze.
➤Stampa F5
Risultato :
In questo modo, si eliminerà l'ultima riga attiva.
Per saperne di più: Codice VBA di Excel per eliminare le righe in base al valore di più celle (3 criteri)
Metodo 13: Eliminare le righe che contengono stringhe
Si supponga di voler eliminare le righe che contengono una stringa qualsiasi e per farlo si può seguire questo metodo.
Passo-01 :
➤Segui Passo-01 di Metodo-1
Sub dltrow13() Dim FirstRow As Long Dim LastRow As Long Dim FirstColumn As Long Dim LastColumn As Long Dim sheet As Worksheet Dim Rng As Range FirstRow = 5 FirstColumn = 2 Set sheet = Worksheets("String") With sheet With .Cells LastRow = .Find(What:="*", LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row LastColumn = .Find(What:="*",LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column End With Set Rng = .Range(.Cells(FirstRow, FirstColumn), .Cells(LastRow, LastColumn)) End With On Error Resume Next Rng.SpecialCells(xlCellTypeConstants, xlTextValues).EntireRow.Delete End Sub
Qui, "stringa" è il nome del foglio, il numero della prima riga di questo intervallo di dati è 5 e il numero della colonna iniziale è 2
Il Con consente di specificare un oggetto o un tipo definito dall'utente una sola volta per un'intera serie di istruzioni.
In caso di errore, riprende il prossimo specifica che, quando si verifica un errore di esecuzione, il controllo passa all'istruzione successiva a quella in cui si è verificato l'errore.
Ultima riga e UltimaColonna restituisce l'ultima riga e colonna dell'intervallo di dati.
SpecialCells(xlCellTypeConstants, xlTextValues) selezionerà le righe con qualsiasi valore di testo nell'intervallo.
➤Stampa F5
Risultato :
Successivamente, verranno eliminate le righe che contengono una qualsiasi stringa di testo.
Per saperne di più: Scorciatoia di Excel per eliminare le righe (con tecniche bonus)
Metodo 14: Eliminazione di righe in base alle date
In questo caso, eliminerò le righe che hanno una data speciale 11/12/2021 (mm/dd/yyyy) in questo metodo utilizzando il metodo Funzione DATEVALUE .
Passo-01 :
➤Segui Passo-01 di Metodo-1
Sub dltrow14() Dim FirstRow As Long Dim LastRow As Long Dim CriteriaColumn As Long Dim myDate As Date Dim sheet As Worksheet Dim i As Long Dim myRowsWithDate As Range FirstRow = 5 CriteriaColumn = 3 myDate = DateValue("11/12/2021") Set sheet = Worksheets("Date") With sheet LastRow = .Cells.Find(What:="*", LookIn:=xlFormulas, LookAt:=xlPart, _ SearchOrder:=xlByRows,SearchDirection:=xlPrevious).Row For i = LastRow To FirstRow Step -1 With .Cells(i, CriteriaColumn) If .Value = myDate Then If Not myRowsWithDate Is Nothing Then Set myRowsWithDate = Union(myRowsWithDate, .Cells) Else Set myRowsWithDate = .Cells End If End If WithNext i End With If Not myRowsWithDate Is Nothing Then myRowsWithDate.EntireRow.Delete End Sub
Qui, "Data" è il nome del foglio, il numero della prima riga di questo intervallo di dati è 5 e il numero della colonna criteri (quale colonna ha le date) è 3 .
Il Con consente di specificare un oggetto o un tipo definito dall'utente una sola volta per un'intera serie di istruzioni.
In caso di errore, riprende il prossimo specifica che, quando si verifica un errore di esecuzione, il controllo passa all'istruzione successiva a quella in cui si è verificato l'errore.
Ultima riga restituisce l'ultima riga dell'intervallo di dati e qui il parametro PER Il ciclo partirà dall'ultima riga che è Ultima riga o 6 in questo caso, e termina con la prima riga.
VALORE DATO convertirà il testo della data in un valore.
Qui, Unione restituirà l'unione di più intervalli corrispondenti alle celle con la data 11/12/2021 e infine gli intervalli verranno eliminati.
➤Stampa F5
Risultato :
In seguito, si cancelleranno le righe che hanno una certa data di 11/12/2021 .
Contenuti correlati: Excel VBA per eliminare righe con dati specifici (9 esempi)
Sezione pratica
Per fare pratica da soli, abbiamo messo a disposizione un Pratica come di seguito in un foglio chiamato Pratica . per favore, fatelo da soli.
Conclusione
In questo articolo, ho cercato di illustrare i modi più semplici per utilizzare VBA Se avete suggerimenti o domande, non esitate a condividerli nella sezione dei commenti.