Eliminazione di ogni X righe (Microsoft Excel)
Quando si importano dati da una fonte esterna, potrebbe essere necessario eliminare dati estranei da un foglio di lavoro. Ad esempio, potrebbe essere necessario rimuovere ogni seconda riga dai dati o ogni quinta riga.
Farlo a mano può essere noioso e soggetto a errori. Fortunatamente, puoi creare una macro per eliminare sia la noia che gli errori.
La seguente macro, DeleteRows, rimuoverà ogni X righe dal foglio di lavoro. Tutto quello che devi fare è selezionare le righe a cui vuoi che venga applicato.
La macro, come scritto, rimuoverà ogni seconda riga. Quindi, se si desidera eliminare la prima, la terza, la quinta e la settima riga che iniziano con la riga 10, selezionare le righe da 10 a 16 e quindi eseguire questa macro. Il risultato è che le righe 10 (la prima riga), 12 (la terza riga), 14 (la quinta riga) e 16 (la settima riga) vengono eliminate.
Sub DeleteRows() Dim iStart As Integer Dim iEnd As Integer Dim iCount As Integer Dim iStep As Integer Dim J As Integer iStep = 2 'Delete every 2nd row Application.ScreenUpdating = False iStart = 1 iCount = Selection.Rows.Count 'Find ending row to start deleting For J = iStart To iCount Step iStep iEnd = J Next Do While iEnd >= iStart Selection.Rows(iEnd).Delete iEnd = iEnd — iStep Loop Application.ScreenUpdating = True End Sub
Se vuoi eliminare qualche altro multiplo di righe, modifica semplicemente l’impostazione per la variabile iStep. Ad esempio, se vuoi cancellare ogni quinta riga, cambia iStep da 2 a 5. (Devi solo fare la singola modifica, nella dichiarazione iStep = 2.)
_Nota: _
Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.
ExcelTips è la tua fonte di formazione economica su Microsoft Excel.
Questo suggerimento (2292) si applica a Microsoft Excel 97, 2000, 2002 e 2003. Puoi trovare una versione di questo suggerimento per l’interfaccia a nastro di Excel (Excel 2007 e versioni successive) qui: