Activecell Offset VBA

Este tutorial demostrará cómo usar Activecell Offset en VBA.

ActiveCell es una propiedad de VBA que representa la dirección de celda de la celda activa en su hoja de trabajo. Si el puntero del mouse está posicionado en la celda A1, la propiedad ActiveCell en VBA devolverá la dirección de celda "A1". Hay una serie de propiedades y métodos que están conectados a ActiveCell. En este artículo nos concentramos en el método ActiveCell.Offset.

Propiedades y métodos de ActiveCell.Offset

Activecell.Offset tiene una serie de propiedades y métodos disponibles para ser programados con VBA. Para ver las propiedades y los métodos disponibles, escriba la siguiente declaración en un procedimiento como se muestra a continuación y presione la tecla de punto en el teclado para ver una lista desplegable.

Los métodos están representados por el icono de método verde y las propiedades por el icono de mano pequeña. Las propiedades y métodos para el método Activecell.Offset son los mismos que para el método Activecell.

Sintaxis de ActiveCell.Offset

La sintaxis de Activecell.Offset es la siguiente

donde RowOffset y ColumnOffset es el número de filas a compensar (números positivos para abajo, número negativo para arriba) o el número de columnas que desea compensar (números positivos compensados ​​a la derecha, número negativo a la izquierda).

ActiveCell.Offset… Seleccione

los Activecell.Offset… Seleccione El método es el método más comúnmente utilizado con el método Activecell.Offset. Le permite moverse a otra celda en su hoja de trabajo. Puede utilizar este método para desplazarse por las columnas o subir o bajar filas en su hoja de trabajo.

Para bajar una fila, pero permanecer en la misma columna:

1 Activecell.Offset (1,0) .Seleccionar

Para moverse por una columna, pero permanecer en la misma fila:

1 Activecell.Offset (0,1) .Seleccionar

Para moverse hacia abajo de una fila y a lo largo de una columna:

1 Activecell.Offset (1,1) .Seleccionar

Para subir una fila:

1 Activecell.Offset (-1,0) .Seleccionar

Para mover una columna a la izquierda:

1 Activecell.Offset (0, -1) .Seleccionar

En el procedimiento a continuación, estamos recorriendo un rango de celdas y moviéndonos hacia abajo una fila y a través de una columna mientras hacemos el ciclo:

12345678 Sub ActiveCellTest ()Dim x como enteroRango ("A1"). SeleccionarPara x = 1 a 10ActiveCell = xActiveCell.Offset (1, 1) .SeleccionarSiguiente xEnd Sub

El resultado de lo cual se muestra en el gráfico siguiente:

El bucle pone el valor de i (1-10) en el Célula activa, y luego usa el Activecell.Offset propiedad para moverse hacia abajo una fila, y a través de una columna a la derecha, repitiendo este ciclo 10 veces.

Programación VBA | ¡Code Generator funciona para usted!

Uso de objeto de rango con Activecell.

El uso del Objeto de rango con la celda activa a veces puede confundir a algunas personas.

Considere el siguiente procedimiento:

1234 Sub ActiveCellOffsetRange ()Rango ("B1: B10"). SeleccionarActiveCell.Offset (1, 1) .Range ("A1"). SeleccioneEnd Sub

Con ActiveCell.Offset (1,1.Range (“A1”), se ha especificado el Range (“A1”). Sin embargo, esto no significa que se seleccionará la celda A1 de la hoja. Como hemos especificado el Range ("B1: B10"), la celda A1 de ese rango es en realidad la celda B1 del libro de trabajo. Por lo tanto, la celda se desplazará 1 fila y 1 columna de celda B1 NO de la celda A1.

Por lo tanto, el rango (“A1 ′) en este caso no es necesario ya que la macro funcionará de la misma manera con él o sin él.

Alternativas a ActiveCell

En lugar de usar Activecell con el método Offset, también podemos usar el objeto Range con el método Offset.

123 Desplazamiento de subrango ()Rango ("B1"). Desplazamiento (0, 1) .SeleccionarEnd Sub

El procedimiento anterior seleccionaría la celda C1 en la hoja de trabajo.

Va a ayudar al desarrollo del sitio, compartir la página con sus amigos

wave wave wave wave wave