image

Encontrar la siguiente fila significa encontrar la última fila utilizada +1. Encontrar la última fila o columna utilizada 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á todos los métodos para encontrar la última fila y columna en Excel de la manera más sencilla.

1. Busque la última fila que no esté en blanco en una columna usando Range.End Primero veamos el código. Explicaré la carta.
Sub getLastUsedRow()

Dim last_row As Integer

last_row = Cells(Rows.Count, 1).End(xlUp).Row ‘This line gets the last row

Debug.Print last_row

End Sub

El sub anterior encuentra la última fila en la columna 1.

image

¿Cómo funciona?

Es como ir a la última fila de una hoja y luego presionar el atajo CTRL + ARRIBA.

Celdas (Rows.Count, 1): esta parte selecciona la celda en la columna A. Rows.Count da 1048576, que suele ser la última fila en la hoja de Excel.

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

Celdas (Rows.Count, 1) .End (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 nuestro ejemplo, es 8.

Vea lo fácil que es encontrar las últimas filas con datos. Este método seleccionará la última fila de los 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 la columna A, simplemente elimine “.row” del final y escriba .select.
Sub getLastUsedRow()

Cells(Rows.Count, 1).End(xlUp).Select ‘This line selects the last cell in a column

End Sub

El comando «.Select» selecciona la celda activa.

Obtener la columna de la dirección de la última celda Si desea obtener la dirección de la última celda en la columna A, simplemente elimine «.row» del final y escriba .address.
Sub getLastUsedRow()

add=Cells(Rows.Count, 1).End(xlUp).address ‘This line selects the last cell in a column

Debug.print add

End Sub

La función Range.Address devuelve la dirección de la celda activa.

Buscar la última columna que no esté en blanco en una fila Es casi lo mismo que encontrar la última celda que no está en blanco en una columna.

Aquí obtenemos el número de columna de la última celda con datos en la fila 4.

Sub getLastUsedCol()

Dim last_col As Integer

last_col = Cells(4,Columns.Count).End(xlToLeft).Column ‘This line gets the last column

Debug.Print last_col

End Sub

image

Puede ver en la imagen que está devolviendo el número de columna de la última celda que no está 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. Acabamos de utilizar palabras clave relacionadas con columnas.

Seleccionar conjunto de datos en Excel usando 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 un conjunto de datos o una tabla, podemos realizar varias operaciones en ellos, como copiar y pegar, formatear, eliminar, etc.

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

image

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

Sub select_table()

Dim last_row, last_col As Long

'Get last row

last_row = Cells(Rows.Count, 2).End(xlUp).Row

'Get last column

last_col = Cells(4, Columns.Count).End(xlToLeft).Column

'Select entire table

Range(Cells(4, 2), Cells(last_row, last_col)).Select

End Sub

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

image

Beneficios de este método:

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

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

  3. Fácil de entender.

  4. Funciona perfectamente si tiene una tabla de datos torpe con puntos de partida fijos.

Contras del método Range.End:

  1. Debe conocerse el punto de partida.

  2. Solo puede obtener la última celda que no esté en blanco en una fila o columna conocida.

Cuando su punto de partida no sea fijo, será inútil. Lo que es menos probable que suceda.

2. Encuentre la última fila usando la función Find () Veamos primero el código.
Sub last_row()

lastRow = ActiveSheet.Cells.Find("*", searchorder:=xlByRows, searchdirection:=xlPrevious).Row



Debug.Print lastRow

End Sub

image

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

¿Cómo funciona? Aquí usamos la función de búsqueda para encontrar cualquier celda que contenga algo usando el operador comodín «*». El asterisco se usa para encontrar cualquier cosa, texto o número.

Establecemos el orden de búsqueda por filas (orden de búsqueda: = xlByRows). También le decimos a Excel vba la dirección de búsqueda como xlPrevious (searchdirection: = xlPrevious).

Hace una función de búsqueda para buscar desde el final de la hoja, por filas.

Una vez que encuentra una celda que contiene algo, se detiene. Usamos el método Range.Row para buscar la última fila de la celda activa.

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

  1. No es necesario que conozca el punto de partida. Solo te da la última fila.

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

  3. Se puede utilizar para encontrar cualquier último ejemplar de texto o número específico en la hoja.

Contras de la función Find ():

  1. Es feo. Demasiados argumentos.

  2. Es lento.

  3. No se puede llegar a la última columna que no está en blanco. Técnicamente, puedes. Pero se vuelve demasiado lento.

3. Usar 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

Sub spl_last_row_()

lastRow = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row

Debug.Print lastRow

End Sub

image

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 atajo CTRL + Fin en Excel. Selecciona la última celda utilizada. Si graba la macro mientras presiona CTRL + Fin, obtendrá este código.

Sub Macro1()

'

' Macro1 Macro

'

'

ActiveCell.SpecialCells(xlLastCell).Select

End Sub

Lo usamos para obtener el número de fila de la última celda utilizada.

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 celda, ya que fue la «última celda utilizada». Primero debe guardar el documento para obtener la última celda con datos utilizando este método.

Espero que este artículo sobre Cómo encontrar la siguiente fila en VBA Microsoft Excel 2010 sea explicativo. Encuentre más artículos sobre fórmulas de condición IF aquí.

Si te gustaron nuestros blogs, compártelo con tus amigos en Facebook. Y también puedes seguirnos en Twitter y Facebook. Nos encantaría saber de usted, háganos saber cómo podemos mejorar, complementar o innovar nuestro trabajo y hacerlo mejor para usted. Escríbanos a [email protected].

Artículos relacionados:

link: / applications-word-outlook-in-vba-Getting-started-with-excel-vba-userforms [Empezando con Excel VBA UserForms]: Explicaré cómo crear un formulario en Excel, cómo usar VBA caja de herramientas, cómo manejar las entradas del usuario y finalmente cómo almacenar las entradas del usuario. Repasaremos estos temas usando un ejemplo y una guía paso a paso.

link: / general-topics-in-vba-vba-variables-in-excel [Variables de VBA en Excel]: VBA significa Visual Basic para Aplicaciones.

Es un lenguaje de programación de Microsoft. Se utiliza con aplicaciones de Microsoft Office como MSExcel, MS-Word y MS-Access, mientras que las variables de VBA son palabras clave específicas.

link: / general-topics-in-vba-excel-vba-variable-scope [Excel VBA Variable Scope]: En todos los lenguajes de programación, tenemos especificadores de acceso a variables que definen desde dónde se puede acceder a una variable definida. Excel VBA no es una excepción. VBA también tiene especificadores de alcance.

enlace: / celdas-rangos-filas-y-columnas-en-vba-cuál-es-la-diferencia-entre-byref-y-byval-argumentos-vba-entrevista-pregunta [ByRef y ByVal argumentos]: Cuando un argumento se pasa como un argumento ByRef a una función o sub diferente, se envía la referencia de la variable real. Cualquier cambio realizado en la copia de la variable se reflejará en el argumento original.

Artículos populares:

link: / tips-if-condition-in-excel [Cómo usar la función IF en Excel]: La declaración IF en Excel verifica la condición y devuelve un valor específico si la condición es VERDADERA o devuelve otro valor específico si es FALSO .

link: / formulas-and-functions-introduction-of-vlookup-function [Cómo usar la función VLOOKUP en Excel]: Esta es una de las funciones más utilizadas y populares de Excel que se usa para buscar valores de diferentes rangos y sábanas.

link: / excel-formula-and-function-excel-sumif-function [Cómo usar la función SUMIF en Excel]: Esta es otra función esencial del tablero. Esto le ayuda a resumir valores en condiciones específicas.

link: / tips-countif-in-microsoft-excel [Cómo usar la función COUNTIF en Excel]: Cuente valores con condiciones usando esta función asombrosa. No necesitas filtrar tus datos para contar valores específicos. La función Countif es esencial para preparar su tablero.