Excel VBA última fila
Encontrar la última fila en una columna es un aspecto importante para escribir macros y hacerlos dinámicos. Como no preferiríamos actualizar los rangos de celdas de vez en cuando cuando trabajamos con referencias de celdas de Excel. Como programador / desarrollador, siempre preferiría escribir un código dinámico que pueda usarse en cualquier dato y sea suficiente para sus requisitos. Además, siempre sería genial si conoce la última fila de sus datos para poder cambiar dinámicamente el código según sus necesidades.
Solo señalaré un ejemplo que reitera la importancia del código dinámico.
Supongamos que tengo los datos que figuran a continuación con los empleados y sus salarios.
Y mira el código que figura a continuación:
Código:
Sub Ejemplo1 () Rango ("D2"). Valor = WorksheetFunction.Sum (Rango ("B2: B11")) Fin Sub
Aquí, este código imprime la suma de salarios para todos los empleados (celda B2: B11 ) en la celda D2 . Ver la imagen a continuación:
Ahora, ¿qué pasa si agrego algunas celdas en estos datos y ejecuto este código nuevamente?
Lógicamente hablando, el código anterior no sumará todas las 14 filas de la columna B. La razón del mismo es el rango que hemos actualizado en WorksheetFunction (que es B2: B11). Esta es la razón, un código dinámico que puede tomar en consideración la última fila rellenada lo hace más importante para nosotros.
En este artículo, presentaré algunos métodos que pueden ser útiles para encontrar la última fila para un conjunto de datos determinado utilizando el código VBA.
¿Cómo encontrar la última fila usada en la columna usando VBA?
A continuación se muestran los diferentes ejemplos con diferentes métodos para encontrar la última fila de una columna utilizada en Excel usando el código VBA.
Puede descargar esta plantilla Excel de la última fila de VBA aquí - Plantilla Excel de la última fila de VBAEjemplo # 1 - Uso del método Range.End ()
Bueno, este método es igual que usar Ctrl + Flecha abajo en Excel para ir a la última fila no vacía. En líneas similares, siga los pasos a continuación para crear código en VBA para llegar a la última fila no vacía de una columna en Excel.
Paso 1: defina una variable que pueda tomar valor para la última fila no vacía de la columna de Excel.
Código:
Sub Ejemplo2 () Dim Last_Row As Long End Sub
Aquí, la variable Last_Row se define como LONG solo para asegurarse de que puede tomar cualquier número de argumentos.
Paso 2: Use la variable definida para mantener el valor de la última fila no vacía.
Código:
Sub Ejemplo2 () Dim Last_Row As Long Last_Row = End Sub
Paso 3: escriba el código que comienza con CELLS (Rows.Count delante de Last_Row = .
Código:
Sub Ejemplo2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count End Sub
Paso 4: Mencione 1 después de una coma en el código mencionado anteriormente. El valor numérico 1 es sinónimo de la primera columna en la hoja de Excel.
Código:
Sub Ejemplo2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count, 1) End Sub
Este código permite que VBA encuentre el número total de filas (vacías + no vacías) presentes en la primera columna de la hoja de cálculo de Excel. Esto significa que este código permite que el sistema vaya a la última celda de Excel.
Ahora, ¿qué pasa si estás en la última celda de Excel y quieres subir a la última fila no vacía? Usarás Ctrl + Flecha arriba, ¿verdad?
La misma lógica que vamos a usar en la siguiente línea de código.
Paso 5: Use una combinación de la tecla Finalizar y xlUp para ir a la última fila no vacía en Excel.
Código:
Sub Ejemplo2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count, 1) .End (xlUp) End Sub
Esto lo llevará a la última fila no vacía en Excel. Sin embargo, quería un número de fila para el mismo.
Paso 6: Use ROW para obtener el número de fila de la última fila no vacía.
Código:
Sub Ejemplo2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count, 1) .End (xlUp) .Row End Sub
Paso 7: muestre el valor de Last_Row que contiene el último número de fila no vacío usando MsgBox.
Código:
Sub Ejemplo2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count, 1) .End (xlUp) .Row MsgBox Last_Row End Sub
Paso 8: Ejecute el código usando el botón Ejecutar o presionando F5 y vea la salida.
Salida:
Paso 9: Ahora, eliminemos una fila y veamos si el código da un resultado exacto o no. Nos ayudará a verificar el dinamismo de nuestro código.
Ejemplo # 2 - Usando Range y SpecialCells
También podemos usar la propiedad Range y SepcialCells de VBA para obtener la última fila no vacía de la hoja de Excel.
Siga los pasos a continuación para obtener la última fila no vacía en Excel usando el código VBA:
Paso 1: Defina una variable nuevamente como Largo.
Código:
Sub Ejemplo3 () Dim Last_Row As Long End Sub
Paso 2: Comience a almacenar el valor en la variable Last_Row utilizando el operador de asignación.
Código:
Sub Ejemplo3 () Dim Last_Row As Long Last_Row = End Sub
Paso 3: Comience a escribir rango ("A: A") .
Código:
Sub Ejemplo3 () Dim Last_Row As Long Last_Row = Range ("A: A") End Sub
Paso 4: Use la función SpecialCells para descubrir la última celda no vacía.
Código:
Sub Ejemplo3 () Dim Last_Row As Long Last_Row = Range ("A: A"). SpecialCells (xlCellTypeLastCell) End Sub
Esta función SpecialCells selecciona la última celda de su Excel a medida que se escribe entre paréntesis ( xlCellTypeLastCell permite seleccionar la última celda no vacía de su hoja de Excel).
Paso 5: Ahora, usa ROW para obtener la última fila de tu hoja de Excel.
Código:
Sub Ejemplo3 () Dim Last_Row As Long Last_Row = Range ("A: A"). SpecialCells (xlCellTypeLastCell) .Row End Sub
Esto le devolverá la última fila no vacía de su Excel.
Paso 6: Ahora, asigne este valor de Last_Row a MsgBox para que podamos ver el último número de fila no vacío en el cuadro de mensaje.
Código:
Sub Ejemplo3 () Dim Last_Row As Long Last_Row = Range ("A: A"). SpecialCells (xlCellTypeLastCell) .Row MsgBox Last_Row End Sub
Paso 7: Ejecute el código presionando F5 o el botón Ejecutar ubicado en la parte superior de la esquina izquierda.
Salida:
Puede ver que el último número de celda no vacío aparece a través de MsgBox con referencia a la columna A. Debido a que hemos mencionado la columna A en la función Rango al definir la fórmula variable.
Paso 8: Si eliminamos una fila y podemos ejecutar esta fórmula. Veamos qué pasa.
Puede ver que el sistema todavía ha dado el recuento de filas como 14. Aunque he eliminado una fila y el recuento de filas real es 13, el sistema no ha capturado el recuento de filas con precisión. Para que el sistema capture el recuento de filas real, debe guardar la hoja de trabajo y volver a ejecutar el código.
Puede ver que el recuento real de filas se muestra en esta captura de pantalla ahora.
Ejemplo # 3 - Usando Range.Find ()
Siga los pasos a continuación para obtener la última fila no vacía en Excel usando el código VBA:
Paso 1: Definir una variable tan larga.
Código:
Sub Ejemplo4 () Dim Last_Row As Long End Sub
Paso 2: Ahora, use el siguiente código para ver la última fila no vacía.
Código:
Sub Ejemplo4 () Dim Last_Row As Long Last_Row = Cells.Find (What: = "*", _ After: = Range ("A1"), _ LookAt: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevious, _ MatchCase: = False) .Row End Sub
Aquí, la función ENCONTRAR busca una primera celda no en blanco. Asterisk (*) es un operador comodín que ayuda a descubrir lo mismo.
A partir de la celda A1, el sistema vuelve a la última celda de la hoja y busca en una dirección hacia atrás (xlPrevious). Se mueve de derecha a izquierda (xlByRows) y se desplaza hacia arriba en la misma hoja a través de todas las filas en líneas similares hasta que encuentra una fila que no está en blanco (vea el .ROW al final del código).
Paso 3: use MsgBox para almacenar el valor de la última fila no vacía y verlo como un cuadro emergente.
Código:
Sub Ejemplo4 () Dim Last_Row As Long Last_Row = Cells.Find (What: = "*", _ After: = Range ("A1"), _ LookAt: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevious, _ MatchCase: = False) .Row MsgBox Last_Row End Sub
Paso 4: Ejecute el código y vea la salida como un cuadro emergente que contiene el último número de fila no vacío.
Salida:
Cosas para recordar
- End (Ejemplo1) se puede usar para encontrar la primera celda / fila en blanco, o la última celda / fila no vacía en una columna dada usando el código VBA.
- El final funciona en una sola columna la mayor parte del tiempo. Si tiene datos en rangos, sería difícil decidir qué columna se debe usar para averiguar la última fila no vacía.
- Buscar (Ejemplo 3) funciona en un rango completo desde el punto de inicio y descubre la última celda / fila no vacía en una columna dada usando el código VBA. También se puede usar para averiguar la última columna no vacía.
Artículos recomendados
Esta es una guía de VBA Last Row. Aquí discutimos cómo encontrar la última fila utilizada en una columna dada junto con algunos ejemplos prácticos y una plantilla de Excel descargable. También puede consultar los siguientes artículos para obtener más información:
- ¿Cómo usar la columna de inserción VBA?
- ¿Cómo seleccionar filas y columnas de Excel?
- Descripción general de las celdas de rango VBA
- ¿Cómo agregar celdas en Excel?