Seleccionar la primera fila o columna en blanco
Este comando sirve para poder seleccionar la primera fila o columna en blanco a partir de la última celda donde se trabajó. Esto es útil cuando se necesita encontrar la última fila o columna donde se trabajó y moverse a la siguiente celda en blanco de manera mas sencilla y practica.
Para poder explicarlo usemos las 2 siguiente macros:
1) Seleccionar la primera fila en blanco: Para realizar esto se utiliza el siguiente comando:
Sub macro4()
Dim lastrow As Integer
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
Cells(lastrow, 1).Offset(1, 0).Select
End Sub
Este, se puede explicar mejor en 3 puntos:
- La primera línea denotada por "Dim lastrow As Integer" lo que hace es definir una variable, la cual se llamara "LastRow" y que será utilizada como "Entero" (Integer).
- La segunda línea "lastrow = Cells(Rows.Count, 1).End(xlUp).Row", lo que hace es que la variable “LastRow” (ya definida anteriormente) tome como base la columna 1 (por eso se observa el número “1” en el comando) y específicamente en la última fila (de esa columna) donde se ejecutó algún último trabajo.
- Por último, la tercera línea “Cells(lastrow, 1).Offset(1, 0).Select” ordena a “Excel” lo que hace es ordenar a Excel que se ubique por debajo de la última celda donde se definió a la variable “LastRow” como base.
Por ejemplo, Supongamos que en la hoja de cálculo 1 (que esta anexada a este texto) se escribió en la primera columna “A”, más específicamente, en las celdas “A3”, “A4” y “A5” las palabras “Clases”, “Excel” y “Avanzado” respectivamente. Entonces, si se ejecuta la Macro1 lo que hará Excel es ubicarse justo después (o una celda posterior) a la última celda donde se trabajó y la cual está en blanco. En este ejemplo seria después de la celda “A5” (donde se escribió “Avanzado”) la cual corresponde específicamente a la celda "A6". Con este ejemplo queda más claro el porqué del nombre de esta macro “Seleccionar la primera fila o columna en blanco”
2) Seleccionar la primera columna en blanco: Para realizar esto se utiliza el siguiente comando:
Este comando es muy similar al primero, solo se diferencia en que en este caso Excel seleccionara la celda siguiente a la última donde se trabajó y que se ubicara en la columna que le sigue. Este concepto quedara más claro más adelante.
Para poder usar esta macro usemos el siguiente comando:
Sub macro5()
Dim LastColumn As Integer
LastColumn = Cells(2, Columns.Count).End(xlToLeft).Column
Cells(2, LastColumn).Offset(0, 1).Select
End Sub
Resumamos su explicación en 3 puntos:
- La línea “Dim LastColumn As Integer” define una variable que en este caso se llamara “LastColumn”
- La segunda línea “LastColumn = Cells(2, Columns.Count).End(xlToLeft).Column” lo que hace es volver a la variable definida anteriormente ,como una especie de base a través de la cual se ejecutara la línea siguiente, pero que en este caso (y en comparación con la macro1) utilizara a la segunda fila donde se realizó el último trabajo (por eso del número “2” en el comando).
- La tercera línea “Cells(2, LastColumn).Offset(0, 1).Select” hará que Excel se ubique en la siguiente celda a la derecha (o siguiente columna) correspondiente a la variable base que se definió en la línea anterior y donde se realizo el ultimo trabajo.
Por ejemplo, supongamos que en la 2da fila de la hoja de cálculo 1, específicamente en las celdas “C2”, “D2” y “E2” se escriben las palabras “Aprende", "Rápido" y "Fácil" respectivamente. Entonces si ejecutamos la “Macro2”, lo que pasara es que Excel se ubicara en la celda en blanco que le sigue a la última en la cual se trabajó (celda “B6” donde se escribió “Fácil”), la cual en este ejemplo seria la celda “F7” (celda en blanco). Por eso del nombre de esta macro “Seleccionar la primera columna en blanco”.
25/06/2018 a las 5:19 am
Hola, en un documento donde tengo filas en blanco intermedias no me funciona el código, me selecciona la ultima fila. sabes como podría solucionar este tema?
25/01/2021 a las 7:17 pm
Buenas tardes;
El post no ha resuelto mi duda pues el enunciado o título está incorrecto, ya que esa macro no localiza la primera fila vacía, sino la primera fila vacía después de la última celda utilizada. No es lo mismo pues si usamos las filas 1, 2 y 4 por ejemplo, la macro nos ubicará en la 5, cuando la primera vacía es la 3.
Si me pudieran ayudar con mi problema estaría muy agradecido.
15/05/2021 a las 4:23 am
excelente aporte me facilito bastante la vida
15/05/2021 a las 5:42 am
Aplicando los ejemplo anteriores NO me soluciono el error 13 en tiempo de ejecucion NO coinciden los tipos es decir tengo un formulario boton guardar: tego un titulo en la Columna A nombres y apellidos, la Columna A2 esta vacia
en la Columna A Fila 2 si esta vacia me genera el error 13 he provado con los ejemplos mecionados y me sigue generando el mismo error
Dim j As Integer
Dim i As Long
'Busca la siguiente fila vacía
j = Hoja3.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
04/05/2023 a las 8:23 am
Hola, necesito saber como puedo hacer para que cuando escribo datos en una celda, al dar enter esa celda con datos baje y siempre quede la primer celda vacia para cargar datos y no se superpongan las celdas. Gracias