En las macros, con frecuencia es necesario desplazarse por las celdas partiendo desde una celda de referencia. Básicamente, se necesita reproducir el pulsar las flechas del teclado. Para ello, tenemos la propiedad Offset del método Range.
Propiedad Offset
Esta propiedad básicamente se divide en 2 simples cuestiones.
- ¿Cuántas filas hay que desplazarse?
- ¿Cuántas columnas hay que desplazarse?
Por ejemplo, si queremos seleccionar una celda en concreta a partir de la celda que tenemos activa, el código seguiría la siguiente regla:
ActiveCell.Offset(Número de filas, Número de columnas).Select
o en el caso de que queramos escribir el valor 1 en referencia a la celda A1, sería esta otra regla:
Range("A1").Offset(Número de filas, Número de columnas).value = 1
Movimiento vertical
Para desplazarse de forma vertical, hay que hacer referencia al número de filas que necesitamos movernos.
Ello quiere decir que para desplazar la referencia hacia abajo, los números deben ser positivos y que para desplazarse hacia arriba, los números deber ser negativos.
Situándonos en la celda marcada en azul, hemos aplicado el siguiente código para seleccionar la celda que se encuentra 3 celdas más abajo.
ActiveCell.Offset(3, 0).Select
Situándonos en la celda marcada en azul, hemos aplicado el siguiente código para seleccionar la celda que se encuentra 2 celdas más arriba.
ActiveCell.Offset(-2, 0).Select
Movimiento horizontal
Para desplazarse de forma vertical, hay que hacer referencia al número de columnas que necesitamos movernos.
Ello quiere decir que para desplazar la referencia hacia la derecha, los números deben ser positivos y que para desplazarse hacia la izquierda, los números deber ser negativos.
Situándonos en la celda marcada en azul, hemos aplicado el siguiente código para seleccionar la celda que se encuentra 2 celdas a la derecha.
ActiveCell.Offset(0, 2).Select
Situándonos en la celda marcada en azul, hemos aplicado el siguiente código para seleccionar la celda que se encuentra 1 celda a la izquierda.
ActiveCell.Offset(0, -1).Select
Movimiento horizontal y vertical
Para hacer un movimiento horizontal y vertical no hay más que hacer la combinación de ambos apartados anteriores.
Situándonos en la celda marcada en azul, se debe aplicar el siguiente código para seleccionar la celda que se encuentra 1 celda a la derecha y 2 hacia abajo.
ActiveCell.Offset(2, 1).Select
No hay comentarios:
Publicar un comentario