Eliminación de datos antiguos de una hoja de trabajo (Microsoft Excel)
Gene está buscando una forma de eliminar rápidamente datos de una hoja de trabajo según la fecha de una columna en particular. Si la fecha es anterior a la actual (la fecha ha pasado), la fila debe eliminarse.
Esto se puede hacer fácilmente con una macro. Todo lo que necesita hacer es hacer que la macro recorra los datos y compare la fecha en cada fila con la fecha de hoy. Si la fecha es menor que hoy, entonces se usa el método Delete en el objeto EntireRow.
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
En este ejemplo, la macro verifica la columna G (en la variable iCol) para la fecha. Si su fecha está en una columna diferente, entonces debe realizar el cambio en la variable. Dependiendo de la cantidad de filas de datos en su hoja de trabajo, la macro también puede tardar bastante en ejecutarse.
Si nota un retraso en el rendimiento, es posible que desee utilizar un enfoque diferente. El siguiente ejemplo usa las capacidades de Autofiltro de Excel para filtrar primero los datos para mostrar solo los datos antiguos y luego borra esas filas.
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
Esta macro supone que ha dado el paso de asignar un nombre a su rango de datos. Seleccione todas las celdas de su tabla de datos, incluida cualquier fila de encabezado, y asígnele el nombre «Fechas». Cuando ejecuta la macro, utiliza este rango como destino del Autofiltro.
_Nota: _
Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.
link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador]
.
ExcelTips es su fuente de formación rentable en Microsoft Excel.
Este consejo (10783) se aplica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 y Excel en Office 365. Puede encontrar una versión de este consejo para la interfaz de menú anterior de Excel aquí:
link: / excel-Deleting_Old_Data_from_a_Worksheet [Eliminando datos antiguos de una hoja de trabajo]
.