segun - ¿Cómo elimino todo debajo de la fila X en VBA/Excel?
macro borrar celdas segun condicion (4)
Cualquier referencia a ''Fila'' debe usar ''long'' no ''integer'', de lo contrario se desbordará si la hoja de cálculo tiene una gran cantidad de datos.
Tengo una variable larga X que contiene un número. Digamos que es 415.
¿Cómo elimino todo en la hoja de trabajo de la fila 415 y más abajo?
Quiero asegurarme de que mi hoja de cálculo esté limpia en la fila 415 y cualquier otra cosa que pueda estar debajo de ella.
¿Cómo hago esto? Gracias.
Esta función borrará los datos de la hoja a partir de la fila y columna especificadas:
Sub ClearWKSData(wksCur As Worksheet, iFirstRow As Integer, iFirstCol As Integer)
Dim iUsedCols As Integer
Dim iUsedRows As Integer
iUsedRows = wksCur.UsedRange.Row + wksCur.UsedRange.Rows.Count - 1
iUsedCols = wksCur.UsedRange.Column + wksCur.UsedRange.Columns.Count - 1
If iUsedRows > iFirstRow And iUsedCols > iFirstCol Then
wksCur.Range(wksCur.Cells(iFirstRow, iFirstCol), wksCur.Cells(iUsedRows, iUsedCols)).Clear
End If
End Sub
Otra opción es Sheet1.Rows(x & ":" & Sheet1.Rows.Count).ClearContents
(o .Clear
). La razón por la que podría querer usar este método en lugar de .Delete
es porque cualquier celda con dependencias en el rango eliminado (por ejemplo, fórmulas que se refieren a esas celdas, incluso si están vacías) terminará mostrando #REF
. Este método conservará las referencias de fórmula a las celdas borradas.
Parece que algo como lo siguiente se adapte a tus necesidades:
With Sheets("Sheet1")
.Rows( X & ":" & .Rows.Count).Delete
End With
Donde X es una variable que = el número de fila (415)