Questo tutorial dimostrerà diversi modi per eliminare righe e colonne in Excel utilizzando VBA.
Elimina intera riga o colonna
Per eliminare un'intera riga in VBA utilizzare questa riga di codice:
1 | Righe(1).Elimina |
Nota che usiamo il Elimina metodo per eliminare una riga.
Invece di fare riferimento a Oggetto Righe, puoi fare riferimento alle righe in base alla loro Oggetto intervallo insieme a Intera riga:
1 | Intervallo ("a1"). Intera riga. Elimina |
Allo stesso modo per eliminare un'intera colonna, usa queste righe di codice:
1 | Colonne(1).Elimina |
1 | Intervallo("a1").Colonna Intera.Elimina |
Elimina più righe o colonne
Utilizzando la stessa logica, puoi anche eliminare più righe contemporaneamente:
1 | Righe("1:3").Elimina |
o colonne:
1 | Colonne ("A: C"). Elimina |
Notare che qui si fa riferimento ai numeri/lettere di riga e colonna specifici circondati da virgolette.
Naturalmente, puoi anche fare riferimento all'intera riga di un intervallo:
1 | Intervallo ("a1: a10"). Intera riga. Elimina |
Nota: gli esempi seguenti mostrano solo l'eliminazione delle righe, tuttavia, come puoi vedere sopra, la sintassi è praticamente identica all'eliminazione delle colonne.
Elimina righe vuote/vuote
Questo esempio eliminerà una riga se l'intera riga è vuota:
1234567891011 | Sub DeleteRows_EntireRowBlank()Cella debole come intervalloPer ogni cella nell'intervallo ("b2: b20")Se Application.WorksheetFunction.CountA(cell.EntireRow) = 0 Alloracell.EntireRow.DeleteFinisci seCella successivaFine sottotitolo |
Utilizza la funzione del foglio di lavoro di Excel: CONTA.VALORI.
Elimina riga se la cella è vuota
Questo cancellerà una riga se la colonna specifica in quella riga è vuota (in questo caso la colonna B):
1 | Range("b3:b20").SpecialCells(xlCellTypeBlanks).EntireRow.Delete |
Elimina riga in base al valore della cella
Questo eseguirà un ciclo attraverso un intervallo ed eliminerà le righe se un determinato valore di cella in quella riga dice "elimina".
1234567891011 | Sub DeleteRowswithSpecificValue()Cella debole come intervalloPer ogni cella nell'intervallo ("b2: b20")Se cell.Value = "delete" Thencell.EntireRow.DeleteFinisci seCella successivaFine sottotitolo |
Altri esempi di eliminazione di righe e colonne
Elimina righe duplicate
Questo codice eliminerà tutte le righe duplicate in un intervallo:
1 | Intervallo ("b2: c100"). Rimuovi colonne duplicati: = 2 |
Nota che impostiamo Colonne:=2. Questo dice a VBA di controllare entrambe le prime due colonne di dati quando si considera se le righe sono duplicate. Viene trovato un duplicato solo quando entrambe le colonne hanno valori duplicati.
Se lo avessimo impostato su 1, solo la prima riga sarebbe stata controllata per i valori duplicati.
Elimina le righe della tabella
Questo codice eliminerà la seconda riga in una tabella facendo riferimento a ListObjects.
1 | ThisWorkbook.Sheets("Sheet1").ListObjects("list1").ListRows(2).Delete |
Elimina righe filtrate
Per eliminare solo le righe visibili dopo il filtraggio:
1 | Range("b3:b20").SpecialCells(xlCellTypeVisible).EntireRow.Delete |
Elimina righe nell'intervallo
Questo codice eliminerà tutte le righe nell'intervallo:
1 | Intervallo ("a1: a10"). Intera riga. Elimina |
Elimina le righe selezionate
Questo codice eliminerà tutte le righe selezionate:
1 | Selezione.Intera riga.Elimina |
Elimina l'ultima riga
Questo eliminerà l'ultima riga utilizzata nella colonna B:
1 | Cells(Rows.Count, 2).End(xlUp).EntireRow.Delete |
Modificando 2 in 1, puoi eliminare l'ultima riga utilizzata nella colonna A, ecc.:
1 | Cells(Rows.Count, 1).End(xlUp).EntireRow.Delete |
Elimina colonne per numero
Per eliminare una colonna in base al suo numero, usa un codice come questo:
1 | Colonne (2).Elimina |