Eliminazione dei vecchi dati da un foglio di lavoro (Microsoft Excel)
Gene sta cercando un modo per eliminare rapidamente i dati da un foglio di lavoro in base alla data in una determinata colonna. Se la data è precedente a quella odierna (la data è passata), la riga dovrebbe essere eliminata.
Questo può essere fatto abbastanza facilmente con una macro. Tutto quello che devi fare è che la macro passi attraverso i dati e confronti la data in ogni riga con la data odierna. Se la data è inferiore a quella odierna, il metodo Delete viene utilizzato sull’oggetto InteraRow.
Sub DeleteRows1() Dim x As Long Dim iCol As Integer iCol = 7 'Filter all on Col G For x = Cells(Cells.Rows.Count, iCol).End(xlUp).Row To 2 Step -1 If Cells(x, iCol).Value < Date Then Cells(x, iCol).EntireRow.Delete End If Next End Sub
In questo esempio, la macro controlla la colonna G (nella variabile iCol) per la data. Se la tua data si trova in una colonna diversa, dovresti apportare la modifica alla variabile. A seconda del numero di righe di dati nel foglio di lavoro, l’esecuzione della macro potrebbe richiedere del tempo.
Se noti un ritardo nelle prestazioni, potresti voler utilizzare un approccio diverso. Nell’esempio seguente vengono utilizzate le funzionalità del filtro automatico di Excel per filtrare prima i dati in modo da mostrare solo i dati precedenti e quindi eliminare tali righe.
Sub DeleteRows2() Dim Dates As Range Dim nRows As Double Dim currDate As Variant 'Format dates as text Range("Dates").NumberFormat = "@" 'Today's date in number format currDate = CDbl(Date) Range("Dates").AutoFilter Field:=1, _ Criteria1:="<" & currDate nRows = Range("Dates").Rows.Count Rows("2:" & nRows).Select Selection.Delete Shift:=xlUp Range("Dates").AutoFilter Range("Dates").NumberFormat = "m/d/yyyy" Range("C2").Select End Sub
Questa macro presume che tu abbia eseguito il passaggio di assegnare un nome all’intervallo di dati. Seleziona tutte le celle nella tabella dei dati, inclusa qualsiasi riga di intestazione, e assegnale il nome “Date”. Quando si esegue la macro, utilizza questo intervallo come destinazione per il filtro automatico.
_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 (3384) 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: