Células VBA

Las celdas son en realidad celdas de la hoja de trabajo y en VBA cuando nos referimos a las celdas como una propiedad de rango, en realidad nos estamos refiriendo a las celdas exactas, en otras palabras, la celda se usa con la propiedad de rango y el método de usar la propiedad de celdas es el siguiente Rango ( .Cells (1,1)) ahora las celdas (1,1) significa que la celda A1, el primer argumento es para la fila y el segundo es para la referencia de la columna.

Referencias de celda de VBA

No necesita ninguna introducción especial sobre lo que es una celda VBA. En los conceptos de VBA, las celdas también son iguales, no diferentes de las celdas normales de Excel. Siga este artículo para tener más conocimientos sobre el concepto de células VBA.

¿Qué es el rango VBA y la celda VBA?

Estoy seguro de que esta es la pregunta que tiene en mente en este momento. En VBA, el rango es un objeto, pero la celda es una propiedad en una hoja de Excel. En VBA tenemos dos formas de hacer referencia a un objeto de celda, una es a través de Range y otra es a través de Cells.

Por ejemplo, si desea hacer referencia a la celda C5, puede utilizar dos métodos para hacer referencia a la celda C5.

Usando el método de rango: Rango ("C5")

Usando el método de celdas: celdas (5, 3)

De manera similar, si desea insertar el valor "Hola" en la celda C5, puede usar el siguiente código.

Usando el método de rango: Rango ("C5"). Valor = "Hola"

Uso del método de celdas: celdas (5, 3) .Valor = "Hola"

Ahora, si desea seleccionar varias celdas, solo podemos seleccionar a través del objeto Rango. Por ejemplo, si quiero seleccionar celdas de A1 a A10, a continuación está el código.

Código: Rango ("A1: A10"). Seleccionar

Pero desafortunadamente, solo podemos hacer referencia a una celda a la vez usando la propiedad CELLS. Podemos usar celdas con objeto Range como el siguiente

Rango (“A1: C10”). Las celdas (5,2) significan en el rango de A1 a C10 la quinta fila y la segunda columna, es decir, la celda B5.

La fórmula de la propiedad CELLS en VBA

Observe la fórmula de la propiedad CELLS.

  • Índice de filas: esto no es más que la fila a la que nos referimos.
  • Índice de columna: esto no es más que la columna a la que nos referimos.
  • Celdas (1, 1) significa celda A1, Celdas (2, 1) significa celda A2, Celdas (1, 2) significa celda B1.
  • Celdas (2, 2) significa celda B2, Celdas (10, 3) significa celda C10, Celdas (15, 5) significa celda E15.

# 1 - ¿Cómo usar la propiedad CELLS en VBA?

Ahora te enseñaré cómo usar estas propiedades CELLS en VBA.

Puede descargar esta plantilla de Excel de celdas de VBA aquí - Plantilla de Excel de celdas de VBA

Suponga que está trabajando en el nombre de la hoja llamado Datos 1  y desea insertar un valor "Hola" en la celda A1.

El siguiente código lo haría por usted.

 Sub Cells_Example () Cells (1, 1) .Value = "Hola" End Sub 

Resultado:

Ahora iré al nombre de la hoja llamada Datos 2 y ejecutaré el código. Incluso allí insertará la palabra "Hola".

De hecho, también podemos combinar la propiedad CELLS con un nombre de hoja en particular. Para hacer referencia a una hoja en particular, use el objeto WORKSHEET.

Hojas de trabajo ("Datos 1"). Celdas (1,1) .Valor = "Hola"

Esto insertará la palabra "Hola" en la hoja "Datos 1" independientemente de la hoja en la que se encuentre.

# 2 - ¿Cómo usar la propiedad CELLS con el objeto Range?

De hecho, podemos usar la propiedad CELLS con un objeto RANGE. Por ejemplo, mire el siguiente código.

Rango ("C2: E8"). Celdas (1, 1) .Seleccionar

Para una mejor comprensión, ingresé algunos números en la hoja de Excel.

El código anterior Rango ("C2: E8"). Celdas (1, 1). Seleccione dice en el rango C2 a E8 seleccione la primera celda. Ejecute este código y vea qué sucede.

 Sub Cells_Example () Range ("C2: E8"). Cells (1, 1) .Select End Sub 

Ha seleccionado la celda C2. Pero Cells (1, 1) significa celda A1, ¿no es así?

La razón por la que ha seleccionado la celda C2 porque al usar el objeto de rango, hemos insistido en el rango como C2 a E8, por lo que la propiedad Cells trata el rango de C2 a E8, no de la celda A1 normal. En este ejemplo, C2 es la primera fila y la primera columna, por lo que Cells (1, 1) .select significa celda C2.

Ahora cambiaré el código a Rango (“C2: E8”). Celdas (3, 2). Seleccione y vea qué sucede.

Ejecute este código y verifique qué celda seleccionará realmente.

 Sub Cells_Example () Range ("C2: E8"). Cells (3, 2) .Select End Sub 

Ha seleccionado la celda D4, es decir, No 26. Las celdas (3,2) significan comenzar desde la celda C2 movida hacia abajo en 3 filas y mover 2 columnas hacia la derecha, es decir, la celda D4.

# 3 - Propiedad de celdas con bucles

La propiedad CELLS con bucles tiene una muy buena relación en VBA. Veamos el ejemplo de insertar números de serie del 1 al 10 usando FOR LOOP. Copie y pegue el siguiente código en su módulo.

 Sub Cells_Example () Dim i As Integer For i = 1 to 10 Cells (i, 1) .Value = i Next i End Sub 

Aquí he declarado la variable I como un número entero.

Luego he solicitado FOR LOOP con I = 1 a 10, es decir, el bucle debe ejecutarse 10 veces.

Celdas (i, 1) .valor = i

Esto significa que cuando el bucle se ejecute por primera vez, el valor de "I" será 1, por lo que siempre que el valor de "I" sea 1, es decir, celda (1,1).

Cuando el bucle devuelve el valor de "I" por segunda vez, es 2, así que dondequiera que esté el valor de "I", es 2. es decir. Cell (2,1) .value = 2

Este bucle se ejecutará 10 veces e insertará el valor I de A1 a A10.

Cosas para recordar en las celdas VBA

  • CELLS es propiedad pero el RANGE es un Objeto. Podemos usar propiedad con objetos pero no objetar la propiedad.
  • Cuando se proporcione el rango, las celdas considerarán solo ese rango, no el rango regular.
  • Las células (1, 2) son células B1, de manera similar, las células (1, "B") también son células B1.