VBA Delete Entire Row or Column – Automate ExcelAutomate Excel

Questo tutorial dimostrerà diversi modi per cancellare righe e colonne in Excel usando VBA.

Delete Entire Row or Column

Per cancellare un’intera riga in VBA usa questa linea di codice:

Rows(1).Delete

Nota che usiamo il metodo Delete per cancellare una riga.

Invece di fare riferimento all’oggetto Rows, puoi fare riferimento alle righe in base al loro oggetto Range con EntireRow:

Range("a1").EntireRow.Delete

Similmente per cancellare un’intera colonna, usa queste righe di codice:

Columns(1).Delete
Range("a1").EntireColumn.Delete

Eliminare più righe o colonne

Utilizzando la stessa logica, puoi anche eliminare più righe in una volta:

Rows("1:3").Delete

o colonne:

Columns("A:C").Delete

Nota che qui facciamo riferimento ai numeri specifici di riga e colonna / lettere circondate da virgolette.

Ovviamente, puoi anche fare riferimento all’intera riga di un intervallo:

Range("a1:a10").EntireRow.Delete

Nota: Gli esempi qui sotto dimostrano solo la cancellazione delle righe, tuttavia come puoi vedere sopra, la sintassi è praticamente identica per cancellare le colonne.

Cancellare righe vuote / vuote

Questo esempio cancellerà una riga se l’intera riga è vuota:

Sub DeleteRows_EntireRowBlank()Dim cell As RangeFor Each cell In Range("b2:b20") If Application.WorksheetFunction.CountA(cell.EntireRow) = 0 Then cell.EntireRow.Delete End IfNext cellEnd Sub

Fa uso della funzione del foglio di lavoro Excel: COUNTA.

Delete Row if Cell is Blank

Questo eliminerà una riga se una specifica colonna in quella riga è vuota (in questo caso la colonna B):

Range("b3:b20").SpecialCells(xlCellTypeBlanks).EntireRow.Delete

Delete Row Based on Cell Value

Questo farà un ciclo attraverso un intervallo, e cancellerà le righe se un certo valore di cella in quella riga dice “delete”.

Sub DeleteRowswithSpecificValue()Dim cell As RangeFor Each cell In Range("b2:b20") If cell.Value = "delete" Then cell.EntireRow.Delete End IfNext cellEnd Sub

Altri esempi di cancellazione di righe e colonne

Eliminare le righe duplicate

Questo codice cancellerà tutte le righe duplicate in un intervallo:

Range("b2:c100").RemoveDuplicates Columns:=2

Nota che abbiamo impostato Colonne:=2. Questo dice a VBA di controllare entrambe le prime due colonne di dati quando considera se le righe sono duplicate. Un duplicato viene trovato solo quando entrambe le colonne hanno valori duplicati.

Se l’avessimo impostato a 1, solo la prima riga sarebbe stata controllata per i valori duplicati.

Cancella righe della tabella

Questo codice cancellerà la seconda riga in una tabella facendo riferimento a ListObjects.

ThisWorkbook.Sheets("Sheet1").ListObjects("list1").ListRows(2).Delete

Eliminare le righe filtrate

Per eliminare solo le righe che sono visibili dopo il filtraggio:

Range("b3:b20").SpecialCells(xlCellTypeVisible).EntireRow.Delete

Eliminare le righe nell’intervallo

Questo codice eliminerà tutte le righe nell’intervallo:

Range("a1:a10").EntireRow.Delete

Elimina le righe selezionate

Questo codice eliminerà tutte le righe selezionate:

Selection.EntireRow.Delete

Elimina l’ultima riga

Questo eliminerà l’ultima riga usata nella colonna B:

Cells(Rows.Count, 2).End(xlUp).EntireRow.Delete

Cambiando 2 con 1, puoi eliminare l’ultima riga usata nella colonna A, ecc.:

Cells(Rows.Count, 1).End(xlUp).EntireRow.Delete

Cancellare colonne per numero

Per cancellare una colonna in base al suo numero, usa un codice come questo:

Columns (2).Delete

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.