La función offset sirve para poder moverse a través de la hoja de cálculo, tal como si lo hiciéramos con las flechas del teclado (arriba, abajo, izquierda, derecha).
Offset(número de filas, número de columnas)
Ejemplos:
ActiveCell.Offset(1, 0).Select -> Avanza una fila (abajo)
ActiveCell.Offset(0, 1).Select -> Avanza una columna (derecha)
ActiveCell.Offset(2, -1).Select -> Avanza 2 filas (abajo) y retrocede 1 columna (izquierda)
ActiveCell.Offset(0, 0).Select -> Se mantiene en la misma celda activa
Con esta función igualmente podemos poner valores a la celda activa seleccionada. Por ejemplo, la siguiente macros:
Sub utilidad_del_offset()
Dim TITULO As Range
Set TITULO = Range("A1")
TITULO.Offset(1, 0).Value = "Utilidad del Offset"
End Sub
Los resultados serán que el título "Utilidad del Offset" será colocado 1 fila debajo de la celda A1:
Otra utilidad es para irse a la primera fila en blanco al final de una tabla completa de datos. La sentencia sería (considerando que estamos dentro de la tabla):
Sub fin_inferior_de_la_tabla()
ActiveCell.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
End Sub
Igualmente para irse al final derecho de la tabla:
Sub fin_der_de_la_tabla()
Selection.End(xlToRight).Select
Selection.Offset(0,1).Select
End Sub
Publicado por: Pamela Gonzales
25/07/2019 a las 4:26 pm
Por favor, me pueden ayudar con un macro que en un rando baje celda por celda y se detenga al encontrar una celda con un valor determinado?
GRACIAS
26/01/2021 a las 9:15 am
Tengo una duda en una maquina cuando grabe la macro y solo quería que me colocara una celda en especifico Range("C2").Select. me lo coloca como si fuera un plano carteciano Activecell.Offset(-1,0).range("A1").select. mi duda es como le puedo quitar esta opcion y que solo me deje la anterior
espero y me puedan ayudar