3 Las mejores maneras de encontrar la última fila y columna no en blanco usando VBA

Encontrar la última fila y columna utilizadas es una de las tareas básicas e importantes para cualquier automatización en Excel usando VBA. Para compilar hojas, libros de trabajo y organizar datos automáticamente, debe encontrar el límite de los datos en las hojas.

Este artículo explicará cada método para encontrar la última fila y columna en Excel de la manera más fácil.

  1. Buscar la última fila no en blanco en una columna usando Rango.Final

Veamos el código primero. Lo explicaré carta.

subsección getLastUsedRow()
Dim last_row Como Entero
last_row = Celdas (Filas.Recuento, 1).Final (xlUp).Fila ‘Esta línea obtiene la última fila
Depurar.Imprimir last_row
Final subsección

El subsección anterior encuentra la última fila en la columna 1.

Cómo funciona?

Es como ir a la última fila de la hoja y luego presionar el acceso directo CTRL + UP.

Células (Filas.Count, 1): Esta parte selecciona la celda en la columna A. Filas.Count da 1048576, que suele ser la última fila en la hoja de Excel.

Células (1048576, 1)

.End(xlUp): End es un método de clase de rango que se usa para navegar en hojas a extremos. xlUp es la variable que indica la dirección. Juntos, este comando selecciona la última fila con datos.

Células (Filas.Recuento, 1).Fin (xlUp)

.Row : row devuelve el número de fila de la celda seleccionada. Por lo tanto, obtenemos el número de fila de la última celda con datos en la columna A. en el ejemplo es 8.

Vea lo fácil que es encontrar las últimas filas con datos. Este método seleccionará la última fila de datos independientemente de las celdas en blanco anteriores. Puedes ver que en la imagen solo la celda A8 tiene datos. Todas las celdas anteriores están en blanco excepto A4.

Seleccione la última celda con datos en una columna

Si desea seleccionar la última celda en una columna, simplemente elimine ".fila” de fin y escribir .seleccionar.

subsección getLastUsedRow()
Células (Filas.Recuento, 1).Final (xlUp).Seleccione ‘Esta línea selecciona la última celda de una columna
Final subsección

El “.El comando "Seleccionar" selecciona la celda activa.

Obtener la columna de dirección de la última celda

Si desea obtener la dirección de la última celda en una columna, simplemente elimine ".fila” de fin y escribir .dirección.

subsección getLastUsedRow()
add=Cells(Filas.Recuento, 1).Final (xlUp).address ‘Esta línea selecciona la última celda de una columna
Depurar.imprimir añadir
Final subsección

gama.La función de dirección devuelve la dirección de la célula activa.

Buscar la última columna no en blanco en una fila

Es casi lo mismo que encontrar la última celda no en blanco en una columna. Aquí obtenemos el número de columna de la última celda con datos en la fila 4.

subsección getLastUsedCol()
Dim last_col Como Entero
last_col = Celdas (4, Columnas.Contar).Final(xlToLeft).Columna ‘Esta línea obtiene la última columna
Depurar.Imprimir last_col
Final subsección

Puede ver en la imagen que está devolviendo el número de columna de la última celda no en blanco en la fila 4. Que es 4.

Cómo funciona?

Bueno, la mecánica es la misma que encontrar la última celda con datos en una columna. Solo hemos usado palabras clave relacionadas con columnas.

Seleccionar conjunto de datos en Excel mediante VBA

Ahora sabemos, cómo obtener la última fila y la última columna de Excel usando VBA. Usando eso podemos seleccionar una tabla o conjunto de datos fácilmente. Después de seleccionar el conjunto de datos o la tabla, podemos hacer varias operaciones en ellos, como copiar y pegar, formatear, eliminar, etc.

Aquí tenemos conjunto de datos. Estos datos pueden expandirse hacia abajo. Solo la celda inicial es fija, que es B4. La última fila y columna no es fija. Necesitamos seleccionar toda la tabla dinámicamente usando vba.

Código VBA para seleccionar una tabla con celdas en blanco

subsección select_table()
Dim last_row, last_col Como largo
'Obtener la última fila
last_row = Celdas (Filas.Recuento, 2).Final (xlUp).Fila
'Obtener la última columna
last_col = Celdas(4, Columnas.Contar).Final(xlToLeft).Columna
'Seleccionar toda la tabla
Rango (Cells (4, 2), Celdas (last_row, last_col)).Seleccionar
Final subsección

Cuando ejecuta esto, toda la tabla se seleccionará en fracción de segundo. Puede agregar nuevas filas y columnas. Siempre seleccionará todos los datos.

Beneficios de este método:

Es fácil. Literalmente escribimos solo una línea para obtener la última fila con datos. Esto lo hace fácil.

Rápida. Menos línea de código, menos tiempo.

Fácil de entender.

Funciona perfectamente si tiene una tabla de datos torpe con un punto de partida fijo.

Contras de Rango.Método End:

El punto de partida debe ser conocido.

Solo puede obtener la última celda que no esté en blanco en una fila o columna conocida. Cuando su punto de partida no es fijo, será inútil. Lo cual es muy menos probable que suceda.

  1. Buscar la última fila usando la función Find

Veamos el código primero.

subsección last_row()
lastRow = ActiveSheet.Celular.Por ejemplo, puede utilizar una función de búsqueda en la dirección de búsqueda.Fila
Depurar.Imprimir lastRow
Final subsección

Como puede ver, en la imagen, este código devuelve la última fila con precisión.

Cómo funciona?

Aquí usamos la función find para encontrar cualquier celda que contenga cualquier cosa usando el operador de comodín "*". Asterisk se usa para encontrar cualquier cosa, texto o número.

Establecemos el orden de búsqueda por filas ( searchorder: = xlByRows ). También le decimos a excel vba la dirección de la búsqueda como xlPrevious (dirección de búsqueda: = xlPrevious). Hace que la función de búsqueda para buscar desde el final de la hoja, en cuanto a la fila.

Una vez que encuentra una celda que contiene algo, se detiene. Usamos el Rango.Método de fila para obtener la última fila de la celda activa.

Beneficios de la función Find para obtener la última celda con datos:

No necesita saber el punto de partida. Simplemente te pone la última fila.

Puede ser genérico y se puede usar para encontrar la última celda con datos en cualquier hoja sin ningún cambio.

Se puede utilizar para encontrar cualquier última instancia de texto o número específico en la hoja.

Contras de la función Find:

Es feo. Demasiados argumentos.

Es lento.

No se puede usar para obtener la última columna no en blanco. Técnicamente, puedes. Pero se pone demasiado lento.

  1. Uso de la función SpecialCells para obtener la última fila

La función SpecialCells con el argumento xlCellTypeLastCell devuelve la última celda utilizada. Veamos el código primero

subsección spl_last_row_()
lastRow = ActiveSheet.Celular.SpecialCells(xlCellTypeLastCell).Fila
Depurar.Imprimir lastRow
Final subsección

Si ejecuta el código anterior, obtendrá el número de fila de la última celda utilizada.

Cómo Funciona?

Este es el equivalente vba del acceso directo CTRL + Fin en Excel. Selecciona la última celda utilizada. Si graba la macro mientras presiona CTRL + Fin, obtendrá este código.

subsección Macro1()
'
' Macro1 Macro
'
'
ActiveCell.Células especiales (xlLastCell).Seleccionar
Final subsección

Simplemente lo usamos para obtener el número de fila de la última celda usada.

Nota: Como dije anteriormente, este método devolverá la última celda utilizada, no la última celda con datos. Si elimina los datos en la última celda, el código vba anterior seguirá devolviendo la misma referencia de celdas, ya que fue la "última celda utilizada". Primero debe guardar el documento para obtener la última celda con datos usando este método.

Leave a Reply

Your email address will not be published. Required fields are marked *

Terms and Conditions of use

The applications/code on this site are distributed as is and without warranties or liability. In no event shall the owner of the copyrights, or the authors of the applications/code be liable for any loss of profit, any problems or any damage resulting from the use or evaluation of the applications/code.