Rango de selección de VBA

Rango de selección de Excel VBA

Después de que la base se rellena con VBA, es importante comprender cómo trabajar con un rango de celdas en la hoja de trabajo. Una vez que comienzas a ejecutar los códigos, prácticamente la mayor parte del tiempo necesitas trabajar con una variedad de celdas. Por lo tanto, es importante entender cómo trabajar con un rango de celdas y uno de esos conceptos es la “Selección de rango” de VBA. En este artículo, le mostraremos cómo trabajar con el "Rango de selección" en Excel VBA.

La selección y el rango son dos temas diferentes, pero cuando decimos seleccionar el rango o la selección de rango, es un concepto único. RANGE es un objeto, "Selección" es una propiedad y "Seleccionar" es un método. La gente tiende a confundirse con estos términos, es importante conocer las diferencias en general.

¿Cómo seleccionar un rango en Excel VBA?

Puede descargar esta plantilla de Excel de rango de selección de VBA aquí - Plantilla de Excel de rango de selección de VBA

Ejemplo 1

Por ejemplo, suponga que desea seleccionar la celda A1 en la hoja de trabajo, luego primero debemos especificar la dirección de la celda usando el objeto RANGE como el siguiente.

Código:

Después de mencionar la celda que necesitamos seleccionar poner punto para ver la lista de IntelliSense que está asociada con el objeto RANGE.

Formar esta variedad de listas elige el método "Seleccionar".

Código:

 Sub Range_Example1 () Range ("A1"). Seleccione End Sub 

Ahora, este código seleccionará la celda A1 en la hoja de trabajo activa.

Si desea seleccionar la celda en las diferentes hojas de trabajo, primero debemos especificar la hoja de trabajo por su nombre. Para especificar la hoja de trabajo, necesitamos usar el objeto "HOJA DE TRABAJO" e ingresar el nombre de la hoja de trabajo entre comillas dobles.

Por ejemplo, si desea seleccionar la celda A1 en la hoja de trabajo "Hoja de datos", primero especifique la hoja de trabajo como se muestra a continuación.

Código:

 Sub Range_Example1 () Hojas de trabajo ("Hoja de datos") End Sub 

Luego, continúe con el código para especificar lo que debemos hacer en esta hoja. En “Hoja de datos” debemos seleccionar la celda A1, por lo que el código será RANGO (“A1”).

Código:

 Sub Range_Example1 () Hojas de trabajo ("Hoja de datos"). Rango ("A1"). Seleccione End Sub 

Cuando intente ejecutar este código, obtendremos el siguiente error.

La razón de esto es "no podemos suministrar directamente el objeto de rango y el método de selección al objeto de la hoja de trabajo".

Primero, necesitamos seleccionar o activar la hoja de trabajo de VBA y luego podemos hacer lo que queramos hacer.

Código:

 Sub Range_Example1 () Hojas de trabajo ("Hoja de datos"). Activar rango ("A1"). Seleccione End Sub 

Ahora esto seleccionará la celda A1 en la hoja de trabajo "Hoja de datos".

Ejemplo n. ° 2: trabajar con el rango seleccionado actual

Seleccionar es algo diferente y trabajar con un rango de celdas ya seleccionado es diferente. Supongamos que desea insertar un valor "Hola VBA" en la celda A1, entonces podemos hacerlo de dos maneras.

En primer lugar, podemos pasar directamente el código VBA como RANGE ("A1") Valor = "Hola VBA".

Código:

 Sub Range_Example1 () Range ("A1"). Valor = "Hola VBA" End Sub 

Lo que hará este código es que solo insertará el valor "Hola VBA" en la celda A1, independientemente de la celda seleccionada actualmente.

Mire el resultado anterior del código. Cuando ejecutamos este código, ha insertado el valor “Hola VBA” aunque la celda actualmente seleccionada es B2.

En segundo lugar, podemos insertar el valor en la celda usando la propiedad "Selección". Para esto primero, necesitamos seleccionar la celda manualmente y ejecutar el código.

Código:

 Sub Range_Example1 () Selection.Value = "Hola VBA" End Sub 

Lo que hará este código es que insertará el valor "Hola VBA" en la celda seleccionada actualmente. Para ver un ejemplo, mire el siguiente ejemplo de ejecución.

Cuando ejecuté el código, mi celda seleccionada actual era B2 y nuestro código insertó el mismo valor en la celda seleccionada actualmente.

Ahora seleccionaré la celda B3 y ejecutaré, allí también obtendré el mismo valor.

Una cosa más que podemos hacer con la propiedad de "selección" es que también podemos insertar valor en más de una celda. Por ejemplo, ahora seleccionaré el rango de celdas de A1 a B5.

Ahora, si ejecuto el código, para todas las celdas seleccionadas obtendremos el valor como "Hola VBA".

Por lo tanto, la simple diferencia entre especificar la dirección de celda por el objeto RANGE y la propiedad Selection es que, en el código del objeto Range, se insertará un valor en las celdas que se especifican explícitamente.

Pero en el objeto Selección, no importa en qué celda se encuentre, insertará el valor mencionado en todas las celdas seleccionadas.

Cosas para recordar aquí

  • No podemos proporcionar directamente el método de selección en la propiedad de selección.
  • RANGE es un objeto y la selección es propiedad.
  • En lugar de rango, podemos usar la propiedad CELLS.