Skip to content
Natuurondernemer
    Maggio 6, 2020 by admin

    Come eliminare l’intera riga in Excel usando VBA (esempi)

    Come eliminare l’intera riga in Excel usando VBA (esempi)
    Maggio 6, 2020 by admin

    L’aggiunta e l’eliminazione di righe fa parte dei compiti comuni di tutti i giorni quando si lavora con Excel.

    Mentre puoi farlo facilmente dal foglio di lavoro stesso, a volte potresti voler usare il percorso VBA per eliminare righe in Excel. Queste potrebbero essere l’eliminazione di una riga specifica, più righe nella selezione, l’eliminazione di righe alternative o quelle che hanno un valore specifico in esso.

    In questo tutorial, vi mostrerò come eliminare le righe in Excel utilizzando VBA (scenari multipli).

    Allora iniziamo!

    Questo tutorial copre:

    Cancellare un’intera riga usando VBA

    Per cancellare un’intera riga in Excel usando VBA, devi usare il metodo EntireRow.Delete.

    Per esempio, se vuoi cancellare l’intera prima riga di un foglio di lavoro, puoi usare il codice seguente:

    Sub DeleteEntireRow()Rows(1).EntireRow.DeleteEnd Sub

    Il codice sopra specificato specifica prima la riga che deve essere cancellata (che viene fatta specificando il numero tra parentesi) e poi usa il metodo EntireRow.Delete per eliminarla.

    È anche possibile eliminare più righe specificando queste righe nel codice.

    Per esempio, il codice seguente eliminerà le righe numero 1, 5 e 9 nel foglio di lavoro:

    Sub DeleteEntireRow()Rows(9).EntireRow.DeleteRows(5).EntireRow.DeleteRows(1).EntireRow.DeleteEnd Sub

    Il codice precedente usa la stessa logica, dove specifica i numeri di riga ed Excel eliminerà queste righe una per una.

    IMPORTANTE: Quando cancellate le righe con qualcosa di simile al codice qui sopra, ricordatevi di iniziare a cancellare dal basso e poi salire. Per esempio, se iniziate dall’alto e cancellate prima la riga 1, tutte le righe sotto di essa verrebbero spostate di una riga verso l’alto e la numerazione non sarebbe corretta (la riga 5 diventerebbe la riga 4 e così via)

    Cancellare tutte le righe nella selezione

    Nel caso vogliate cancellare tutte le righe in un intervallo selezionato di celle, potete usare il codice macro VBA qui sotto:

    Sub DeleteEntireRow()Selection.EntireRow.DeleteEnd Sub

    Il codice precedente applica il metodo EntireRow.Delete all’intera selezione.

    Elimina le righe alterne (o Elimina ogni terza/quarta/quinta riga)

    A volte, si può ottenere un dump di dati dove ogni seconda riga (o terza, quarta o ennesima riga) è inutile e deve essere eliminata.

    Ho lavorato con dati finanziari in cui ogni seconda riga era vuota e doveva essere cancellata.

    Questo è il tipo di scenario in cui VBA brilla davvero.

    Di seguito è riportato il codice VBA che passerà attraverso tutte le righe della selezione e cancellerà ogni seconda riga:

    Sub DeleteAlternateRows()RCount = Selection.Rows.CountFor i = RCount To 1 Step -2 Selection.Rows(i).EntireRow.DeleteNext iEnd Sub

    Lascia che ti spieghi come funziona questo codice VBA.

    Prima di tutto, ho usato una variabile RCount per ottenere il numero totale di righe nella selezione.

    Poi ho usato un ciclo For Next per eseguire questo tante volte quante sono le righe. Per esempio, se ci sono 12 righe, questo ciclo verrà eseguito da 12 a 1 (cioè, 12 volte). È importante eseguire questo ciclo dall’ultima riga della selezione alla prima, poiché non vogliamo che i numeri di riga cambino quando una riga viene cancellata.

    Inoltre, il passo -2 viene utilizzato poiché abbiamo bisogno di cancellare ogni altra riga (dal basso verso l’alto). Nel caso tu voglia cancellare ogni terza riga, puoi usare -3.

    Nel ciclo VBA, ho usato il metodo Selection.Rows(i).EntireRow.Delete per cancellare ogni riga alternativa.

    Cancellare le righe vuote con VBA

    Puoi anche usare il metodo EntireRow.Delete per eliminare tutte le righe vuote.

    Di seguito è riportato il codice VBA che selezionerà le celle vuote nel dataset selezionato ed eliminerà l’intera riga.

    Sub DeleteBlankRows()Selection.SpecialCells(xlCellTypeBlanks).EntireRow.DeleteEnd Sub

    Il codice sopra riportato utilizza la proprietà SpecialCells per selezionare ed eliminare tutte le celle che sono vuote. Questo è lo stesso metodo che ci permette anche di usare la finestra di dialogo ‘Go To Special’ per selezionare tutte le celle vuote.

    Una volta che queste celle vuote sono identificate usando SpecialCell, queste vengono poi eliminate usando il metodo EntireRow.Delete.

    Nota: Questo metodo seleziona le celle che sono vuote e non controlla se l’intera riga è vuota o no. Quindi se una cella è vuota in una riga, questo eliminerà comunque l’intera riga.

    Elimina le righe con una parola/valore specifico

    Puoi anche usare un semplice codice VBA per passare attraverso ogni cella nell’intervallo selezionato ed eliminare tutte le righe dove una cella contiene un testo o un valore specifico.

    Per esempio, supponiamo di avere un set di dati e di voler cancellare tutte le celle che hanno il testo Stampante nella colonna 2 della selezione.

    Dataset da dove cancellare l'intera riga con un valore specifico

    Di seguito il codice che farà questo:

    Sub DeleteRowswithSpecificValue()For i = Selection.Rows.Count To 1 Step -1If Cells(i, 2).Value = "Printer" ThenCells(i, 2).EntireRow.DeleteEnd IfNext iEnd Sub

    Il codice qui sopra conta prima il numero totale di righe nella selezione. Questo farà in modo che il ciclo venga eseguito solo queste volte. Poi usa il ‘For Next loop’ per passare attraverso tutte le celle della colonna 2.

    L’istruzione IF THEN ELSE viene poi usata per controllare il valore in ogni cella della colonna 2. E nel caso in cui il valore/testo corrisponda al testo specificato (che è ‘Printer’ in questo esempio).

    In questo esempio, ho controllato se il testo corrisponde a una stringa specifica o meno. Potete farlo anche con i valori. Per esempio, potete cancellare tutte le righe in cui il valore di vendita è inferiore a 1000 o superiore a 1000.

    Nota: Una cosa importante da notare qui è che il ciclo viene eseguito da Selection.Rows.Count To 1 per assicurarsi che quando una riga viene cancellata, non abbia effetto sulle righe precedenti.

    Come usare questo codice VBA

    Ora vi mostro come usare tutti i codici menzionati in questo tutorial per cancellare l’intera riga.

    È necessario copiare e incollare questi codici in un modulo in Excel VB Editor. Una volta copiati questi codici, è possibile eseguire i codici macro.

    Di seguito sono riportati i passaggi per copiare e incollare questi codici VBA in un modulo:

    1. Tenere premuto il tasto ALT e premere il tasto F11 (o Funzione + Opzione + F11 in Mac). Questo aprirà l’editor VB
    2. Nell’editor VB, avrete l’esploratore del progetto sulla sinistra. Se non lo vedi, vai all’opzione Visualizza e poi clicca su Esplora Progetto.Clicca su Esplora Progetto
    3. Clicca con il tasto destro del mouse su qualsiasi oggetto in Esplora Progetto (per la cartella di lavoro in cui vuoi eseguire il codice).Inserisci Modulo
    4. Vai su Inserisci e poi clicca su Modulo. Questo inserirà un nuovo modulo per la cartella di lavoroCopia e incolla per cancellare l'intera riga nel modulo
    5. Copia e incolla i codici di cui sopra nel modulo.

    E per eseguire questi codici, è possibile posizionare il cursore in qualsiasi punto del codice (che si desidera eseguire) e premere il tasto F5 (o cliccare sul triangolo verde nella barra degli strumenti VBA).

    Ho anche scritto un tutorial dettagliato sui diversi modi di eseguire i codici macro VBA in Excel.

    Nel caso in cui tu abbia bisogno di usare qualcuno di questi codici abbastanza spesso, puoi anche considerare di aggiungerli alla cartella di lavoro Macro personale e poi al QAT. In questo modo, il codice sarà disponibile per te in qualsiasi cartella di lavoro con un solo clic.

    Quindi questi erano alcuni codici VBA che puoi usare per cancellare intere righe in Excel (in diversi scenari). La stessa logica può essere applicata anche nel caso in cui vogliate cancellare colonne invece di righe (con la corrispondente modifica negli esempi di codice).

    Spero che abbiate trovato utile questo tutorial!

    Vi potrebbero piacere anche i seguenti tutorial Excel:

    • Excel VBA Autofilter: Una guida completa con esempi
    • Eliminare le righe in base al valore di una cella (o condizione) in Excel
    • Inserire una riga vuota dopo ogni riga in Excel (o ogni ennesima riga)
    • Come nascondere rapidamente le COLONNE in Excel

    Previous articleTop 10 marche di pompe di calore del 2020 - Qual è la migliore marca di pompe di calore?Next article Mission: Impossible Peter Graves muore

    Lascia un commento Annulla risposta

    Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

    Articoli recenti

    • Trovare se stessi (e gli altri…) negli annuari online
    • Come impostare un bitcoin ASIC miner
    • Cos’è un sito Superfund?
    • I vermi sanguigni con esca da pesca hanno morsi di api
    • Ecolalia: I fatti oltre il “parlare a pappagallo”, lo scripting e l’eco
    • Citazioni del Signore delle Mosche
    • A Beginner’s Guide to Pegging
    • 42 ricette sane di zuppa Crockpot
    • 3 rischi sorprendenti della cattiva postura
    • Pesce Betta femmina

    Archivi

    • Aprile 2021
    • Marzo 2021
    • Febbraio 2021
    • Gennaio 2021
    • Dicembre 2020
    • Novembre 2020
    • Ottobre 2020
    • Settembre 2020
    • Agosto 2020
    • Luglio 2020
    • Giugno 2020
    • Maggio 2020
    • Aprile 2020
    • DeutschDeutsch
    • NederlandsNederlands
    • EspañolEspañol
    • FrançaisFrançais
    • PortuguêsPortuguês
    • ItalianoItaliano
    • PolskiPolski

    Meta

    • Accedi
    • Feed dei contenuti
    • Feed dei commenti
    • WordPress.org
    Posterity WordPress Theme