Questo tutorial dimostrerà come eliminare o inserire righe in base ai valori delle celle.
Elimina riga in base al valore della cella
Questo eseguirà un ciclo attraverso un intervallo ed eliminerà le righe se la colonna A dice "elimina".
1234567891011121314151617181920 | Sub DeleteRowsBasedonCellValue()"Dichiara variabili"Dim LastRow quanto più a lungo, FirstRow quanto più a lungoDim Row quanto più a lungoCon ActiveSheet"Definisci la prima e l'ultima riga"Prima riga = 1LastRow = .UsedRange.Rows(.UsedRange.Rows.Count).Row'Loop attraverso le righe (dal basso verso l'alto)For Row = LastRow To FirstRow Passaggio -1If .Range("A" & Row).Value = "delete" Then.Intervallo("A" e riga).Intera riga.EliminaFinisci seRiga successivaTermina conFine sottotitolo |
Dobbiamo iniziare il ciclo con la riga inferiore perché l'eliminazione di una riga sposterà i dati, saltando le righe se esegui il ciclo dall'alto verso il basso.
Inoltre, nota che invece di inserire manualmente l'ultima riga, calcoliamo l'ultima riga utilizzata.
Elimina riga - In base al filtro
Nell'esempio precedente, abbiamo eseguito il ciclo delle righe, eliminando ogni riga che soddisfa i criteri. In alternativa, possiamo utilizzare il filtro automatico di Excel per filtrare le righe in base ad alcuni criteri e quindi eliminare le righe visibili:
12345678910111213141516171819202122232425 | Sub FilterAndDeleteRows()'Dichiara variabile wsDim ws come foglio di lavoroImposta ws = ActiveSheet"Ripristina filtri esistenti"In caso di errore Riprendi Avantiws.ShowAllDataIn caso di errore Vai a 0'Applica il filtrows.Range("a1:d100").AutoFilter Field:=1, Criteria1:="delete""Elimina righe"Application.DisplayAlerts = Falsews.Range("a1:d100").SpecialCells(xlCellTypeVisible).EliminaApplication.DisplayAlerts = True'Filtro pulitoIn caso di errore Riprendi Avantiws.ShowAllDataIn caso di errore Vai a 0Fine sottotitolo |
Elimina riga in base ai criteri della cella
Questo eseguirà un ciclo attraverso un intervallo, eliminando le righe se la cella nella colonna A soddisfa determinati criteri (< 0):
1234567891011121314151617181920 | Sub DeleteRowsBasedonCellValue()"Dichiara variabili"Dim LastRow quanto più a lungo, FirstRow quanto più a lungoDim Row quanto più a lungoCon ActiveSheet"Definisci la prima e l'ultima riga"Prima riga = 1LastRow = .UsedRange.Rows(.UsedRange.Rows.Count).Row'Loop Through Rows (dal basso verso l'alto)For Row = LastRow To FirstRow Passaggio -1If .Range("A" & Row).Value < 0 Then.Intervallo("A" e riga).Intera riga.EliminaFinisci seRiga successivaTermina conFine sottotitolo |
Programmazione VBA | Il generatore di codice funziona per te!
Elimina riga se la cella è vuota
Questo eseguirà un ciclo attraverso un intervallo, eliminando una riga se una cella nella colonna A è vuota:
1234567891011121314151617181920 | Sub DeleteRowsBasedonCellValue()"Dichiara variabili"Dim LastRow quanto più a lungo, FirstRow quanto più a lungoDim Row quanto più a lungoCon ActiveSheet"Definisci la prima e l'ultima riga"Prima riga = 1LastRow = .UsedRange.Rows(.UsedRange.Rows.Count).Row'Loop Through Rows (dal basso verso l'alto)For Row = LastRow To FirstRow Passaggio -1If .Range("A" & Row).Value = "" Then.Intervallo("A" e riga).Intera riga.EliminaFinisci seRiga successivaTermina conFine sottotitolo |
Elimina riga vuota
In alternativa, se si desidera eliminare una riga se l'intera riga è vuota (fare clic sul collegamento per un metodo leggermente diverso), è possibile utilizzare questo codice:
1234567891011121314151617181920 | Sub EliminaBlankRows()"Dichiara variabili"Dim LastRow quanto più a lungo, FirstRow quanto più a lungoDim Row quanto più a lungoCon ActiveSheet"Definisci la prima e l'ultima riga"Prima riga = 1LastRow = .UsedRange.Rows(.UsedRange.Rows.Count).Row'Loop Through Rows (dal basso verso l'alto)For Row = LastRow To FirstRow Passaggio -1Se WorksheetFunction.CountA(.Rows(Row)) = 0 Then.Righe(Riga).InteraRiga.EliminaFinisci seRiga successivaTermina conFine sottotitolo |
Elimina riga se la cella contiene un valore
Questo eseguirà un ciclo attraverso un intervallo, eliminando una riga se la cella nella colonna A non è vuota:
1234567891011121314151617181920 | Sub DeleteRowsBasedonCellValue()"Dichiara variabili"Dim LastRow quanto più a lungo, FirstRow quanto più a lungoDim Row quanto più a lungoCon ActiveSheet"Definisci la prima e l'ultima riga"Prima riga = 1LastRow = .UsedRange.Rows(.UsedRange.Rows.Count).Row'Loop attraverso le righe (dal basso verso l'alto)For Row = LastRow To FirstRow Passaggio -1If .Range("A" & Row).Value "" Then.Intervallo("A" e riga).Intera riga.EliminaFinisci seRiga successivaTermina conFine sottotitolo |
Stanco di cercare esempi di codice VBA? Prova AutoMacro!
Inserisci riga in base al valore della cella
Questo eseguirà un ciclo attraverso un intervallo, inserendo righe se una determinata cella in quella riga dice "inserisci":
1234567891011121314151617181920 | Sub InsertRowsBasedonCellValue()"Dichiara variabili"Dim LastRow quanto più a lungo, FirstRow quanto più a lungoDim Row quanto più a lungoCon ActiveSheet"Definisci la prima e l'ultima riga"Prima riga = 1LastRow = .UsedRange.Rows(.UsedRange.Rows.Count).Row'Loop Through Rows (dal basso verso l'alto)For Row = LastRow To FirstRow Passaggio -1If .Range("A" & Row).Value = "insert" Then.Intervallo("A" e riga).Intera riga.InserisciFinisci seRiga successivaTermina conFine sottotitolo |