Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado
Logo Excel Avanzado

Utilidad del offset

| 27 comentarios

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:

15 300x161 Utilidad del offset

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

27 comentarios

  1. 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

  2. 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

Página de comentarios 2 de 2
1 2

Deja una respuesta

Los campos requeridos estan marcados con *.