DESPLAZAMIENTO DE VBA

Función de compensación de Excel VBA

La función VBA Offset se usa para mover o hacer referencia a una referencia que omite un número particular de filas y columnas, los argumentos para esta función en VBA son los mismos que los argumentos en la hoja de trabajo.

Por ejemplo, suponga que tiene un conjunto de datos como el siguiente.

Ahora, desde la celda A1, desea bajar 4 celdas y desea seleccionar esa quinta celda, es decir, la celda A5.

De manera similar, si desea moverse hacia abajo desde las filas de la celda A1 2 e ir 2 columnas a la derecha y seleccionar esa celda, es decir, la celda C2.

En estos casos, la función OFFSET es muy útil. Especialmente en VBA OFFSET Function es simplemente fenomenal.

OFFSET se usa con objeto de rango en Excel VBA

En VBA no podemos ingresar directamente la palabra OFFSET. Necesitamos usar el objeto VBA RANGE primero y desde ese objeto de rango, podemos usar la propiedad OFFSET.

En Excel, el rango no es más que una celda o rango de la celda. Dado que OFFSET se refiere a celdas, primero debemos usar el objeto RANGE y luego podemos usar el método OFFSET.

Sintaxis de OFFSET en VBA Excel

  • Desplazamiento de fila: cuántas filas desea desplazar de la celda seleccionada. Aquí la celda seleccionada es A1, es decir, Rango ("A1").
  • Desplazamiento de columna: cuántas columnas desea desplazar de la celda seleccionada. Aquí la celda seleccionada es A1, es decir, Rango ("A1").

Ejemplos

Puede descargar esta plantilla VBA OFFSET aquí - Plantilla VBA OFFSET

Ejemplo 1

Considere los datos siguientes, por ejemplo, una demostración.

Ahora quiero seleccionar la celda A6 de la celda A1. Inicie la macro y la celda de referencia utilizando el objeto Range.

Código:

 Sub Offset_Example1 () Rango ("A1"). Offset (End Sub 

Ahora quiero seleccionar la celda A6, es decir, quiero hacer 5 celdas. Así que ingrese 5 como parámetro para Row Offset.

Código:

 Sub Offset_Example1 () Rango ("A1"). Offset (5 End Sub 

Como estoy seleccionando en la misma columna, omito la parte de la columna. Cierre el corchete y ponga un punto (.) Y escriba el método “Seleccionar”.

Código:

 Sub Offset_Example1 () Rango ("A1"). Offset (5) .Seleccione End Sub 

Ahora ejecute este código usando la tecla F5 o puede ejecutarlo manualmente para seleccionar la celda A6 como se muestra a continuación.

Salida:

Ejemplo # 2

Ahora tome los mismos datos, pero aquí verá cómo usar el argumento de desplazamiento de columna también. Ahora quiero seleccionar la celda C5.

Como quiero seleccionar la celda C5 en primer lugar, quiero bajar 4 celdas y tomar las 2 columnas de la derecha para llegar a la celda C5. El siguiente código haría el trabajo por mí.

Código:

 Sub Offset_Example2 () Rango ("A1"). Offset (4, 2) .Seleccione End Sub 

Ejecuto este código manualmente o usando la tecla F5 y luego seleccionará la celda C5 como se muestra en la siguiente captura de pantalla.

Salida:

Ejemplo # 3

Hemos visto cómo compensar filas y columnas. También podemos seleccionar las celdas anteriores de las celdas especificadas. Por ejemplo, si está en la celda A10 y desea seleccionar la celda A1, ¿cómo la selecciona?

En caso de movernos hacia abajo en la celda, podemos ingresar un número positivo, por lo que aquí en caso de movernos hacia arriba, necesitamos ingresar números negativos.

Desde la celda A9, necesitamos subir 8 filas, es decir, -8.

Código:

 Sub Offset_Example1 () Rango ("A9"). Offset (-8) .Seleccione End Sub 

Si ejecuta este código con la tecla F5 o puede ejecutar este código manualmente, seleccionará la celda A1 de la celda A9.

Salida:

Ejemplo # 4

Suponga que está en la celda C8. Desde esta celda, desea seleccionar la celda A10.

Desde la celda activa, es decir, la celda C8, primero debemos movernos 2 filas hacia abajo y debemos movernos 2 columnas hacia la izquierda para seleccionar la celda A10.

En caso de movernos a la izquierda para seleccionar la columna, debemos especificar que el número es negativo. Entonces aquí tenemos que regresar por -2 columnas.

Código:

 Sub Offset_Example2 () Rango ("C8"). Offset (2, -2) .Seleccione End Sub 

Ahora ejecute este código usando la tecla F5 o ejecútelo manualmente, seleccionará la celda A10 como se muestra a continuación:

Salida:

Cosas para recordar

  • En caso de subir filas, debemos especificar el número en negativos.
  • En caso de moverse hacia la izquierda para seleccionar la columna, el número debe ser negativo.
  • La celda A1 es la primera fila y la primera columna.
  • Celda activa significa celdas actualmente seleccionadas.
  • Si desea seleccionar la celda usando OFFSET, debe mencionar ".Seleccionar".
  • Si desea copiar la celda usando OFFSET, debe mencionar ". Copiar".