Desventajas del .End(xlUp) Method
- Si hay una celda en blanco en el medio de los datos, el resultado puede ser inexacto porque VBA se detendrá antes de llegar a los últimos datos reales.
- Si se combina alguna celda, es posible que este método no funcione bien porque Excel considera las celdas combinadas como una sola unidad.
3. Encontrar la última columna con datos usando .End(xlToLeft)
El método .End(xlToLeft) en Excel VBA trabaja para encontrar la última columna que contiene datos en una fila específica.
Funciona de manera similar a presionar Ctrl + ← (flecha izquierda) en Excel:
- Comience en la columna más a la derecha de la fila.
- Muévase a la izquierda hasta que encuentre la última columna con datos.
- Genera el número de columnas en las que se encontraron los datos por última vez.
Otros artículos interesantes
Ejemplo de código VBA para buscar la última columna
El siguiente código encontrará la última columna que tiene los datos en la primera fila de la hoja de cálculo “Hoja1”:
Sub FindingLastColumn()
Dim ws As Worksheet
Dim LastCol As Long
Set ws = ThisWorkbook.Worksheets(“Sheet1”)
' Finds the last column that has data in the first row
LastCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column
' Displays results in Immediate Window
Debug.Print “Last Column with Data: “ & LastCol
End Sub
Ventajas del .End(xlToLeft) Method
- Es genial encontrar la última columna que contiene los datos en la tabla.
- Es fácil de usar sin requerir una gran cantidad de código.
- Puede ayudar a encontrar el encabezado o la sección de un informe automatizado.
Desventajas del .End(xlToLeft) Method
- Si hay columnas vacías entre los datos, este método se detendrá antes de llegar a la última columna real.
- Al igual que en .End(xlUp), este método no tiene en cuenta las columnas combinadas.
4. Uso de Find para detectar con precisión las últimas células llenadas
El método Find de Excel VBA es una de las formas más eficaces y adecuadas de encontrar la última fila o columna que tiene datos en una hoja de cálculo.
A diferencia de .End(xlUp), que solo funciona en una columna, el método Find puede buscar la última celda en toda el área de la hoja de cálculo, tanto filas como columnas.
Este método es especialmente beneficioso cuando se trabaja con conjuntos de datos complejos, hay celdas ocultas (hidden rows/columns) o celdas que contienen fórmulas. También es adecuado para conjuntos de datos irregulares.
Ejemplo de código VBA para encontrar la última línea que contiene datos
El código siguiente buscará la última fila que tiene datos en una hoja de cálculo determinada mediante el método Find :
Sub FindingLastRow()
Dim ws As Worksheet
Dim LastRow As Long
Set ws = ThisWorkbook.Worksheets(“Sheet1”)
' Finds the last row that has data
On Error Resume Next
LastRow = ws.Cells.Find(What:=“*”, _
After:=ws.Range(“A1”), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
' SearchOrder:=xlByColumns, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Row
On Error GoTo 0
' Displays results in Immediate Window
Debug.Print “Last Row with Data: “ & LastRow
End Sub
Utilice SearchOrder:=xlByColumns para realizar una búsqueda por columna.