Obtenga valor de celda en Excel VBA

Obtenga valor de celda con Excel VBA

Una celda es una celda individual y también es parte de un rango, técnicamente hay dos métodos para interactuar con una celda en VBA y son el método de rango y el método de celda, el método de rango se usa como rango ("A2") .Value que nos dará el valor de la celda A2 o podemos usar el método de celda como celdas (2,1) .value que también nos dará el valor de las celdas A2.

Ya sea que funcione en Excel o en VBA, todos necesitamos trabajar con celdas o celdas porque todos los datos se almacenarán en celdas, por lo que todo se reduce a qué tan bien conocemos las celdas en VBA. Entonces, si las celdas son una parte tan crucial de VBA, entonces es importante entenderlas bien y si es un principiante con respecto a las celdas VBA, este artículo lo guiará sobre cómo obtener los valores de celda en Excel VBA en detalle.

Lo primero es lo primero que podemos hacer referencia o trabajar con celdas en VBA de dos maneras, es decir, utilizando la propiedad CELLS y el objeto RANGE. Por qué CELLS es una propiedad y por qué RANGE es un objeto es una analogía diferente y más adelante en el artículo llegaremos a ese punto.

Ejemplos de obtener valor de celda en Excel VBA

A continuación se muestran los ejemplos de Obtener valor de celda en Excel VBA.

Puede descargar esta plantilla de Excel VBA Get Cell Value aquí - VBA Get Cell Value Excel Template

Ejemplo n. ° 1: uso de la propiedad RANGE o CELLS

Por ejemplo, en la celda A1 tenemos un valor de "India".

Para hacer referencia a esta celda, podemos usar la propiedad CELLS o el objeto RANGE, veamos ambos en detalle.

Usando la propiedad de rango

Primero, inicie el procedimiento de macro.

Código:

 Sub Get_Cell_Value () End Sub 

Ahora abra el objeto RANGE.

Código:

 Sub Get_Cell_Value () Rango (End Sub 

El primer argumento de este objeto es "Cell1", es decir, a qué celda nos referimos. En este caso, es la celda A1, por lo que debemos proporcionar la dirección de la celda entre comillas dobles para el objeto RANGE.

Código:

 Sub Get_Cell_Value () Rango ("A1") End Sub 

Dado que solo una celda se refiere a otros parámetros, son irrelevantes, así que cierre el corchete y coloque un punto para ver la lista intellisense.

Como puede ver arriba, en el momento en que colocamos el punto, podemos ver toda la lista intellisense de propiedades y métodos disponibles del objeto de rango.

Dado que estamos seleccionando la celda, debemos elegir el método "SELECT" de la lista intellisense.

Código:

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

Ahora seleccione la celda que no sea A1 y ejecute el código.

No importa qué celda haya seleccionado en el momento en que ejecuta el código, ha elegido la celda mencionada, es decir, la celda A1.

Usar propiedad de celdas

De manera similar, ahora usamos la propiedad CELLS.

Código:

 Sub Get_Cell_Value () Range ("A1"). Seleccionar celdas (End Sub 

Esto es diferente al objeto RANGE donde podríamos proporcionar directamente la dirección de la celda, pero usando esta propiedad CELLS no podemos hacer eso.

El primer argumento de esta propiedad es "Índice de fila", es decir, a qué fila nos referimos. Como estamos seleccionando la celda A1, nos referimos a la primera fila, así que mencione 1.

El siguiente argumento es el "Índice de columna", es decir, a qué columna nos referimos. La columna de celda A1 es la primera columna, así que ingrese 1.

Nuestro código lee CELLS (1, 1) es decir, primera fila, primera columna = A1.

Ahora ponga un punto y vea si puede ver la lista intellisense o no.

Con las propiedades de CELLS no podemos ver ninguna lista de IntelliSense, por lo que debemos estar absolutamente seguros de lo que estamos escribiendo. Introduzca "Seleccionar" como método.

Código:

 Sub Get_Cell_Value () Range ("A1"). Seleccionar celdas (1, 1) .Seleccionar End Sub 

Esto también seleccionará la celda A1.

Ejemplo n. ° 2: obtener valor de la celda en Excel VBA

Seleccionar es lo primero que hemos aprendido, ahora veremos cómo obtener valor de las celdas. Antes de seleccionar la celda, necesitamos definir la variable para almacenar el valor de la celda.

Código:

 Sub Get_Cell_Value1 () Dim CellValue As String End Sub 

Ahora mencione la dirección de la celda usando el objeto RANGE o la propiedad CELLS. Ya que eres un principiante, usa el objeto RANGE solo porque con el objeto RANGE podemos ver la lista intellisense.

Para la variable definida, ponga un signo igual y mencione la dirección de la celda.

Código:

 Sub Get_Cell_Value1 () Dim CellValue As String CellValue = Rango ("A1") End Sub 

Una vez más, ponga un punto para ver la lista intellisense.

De la lista de intellisense de vba, elija la propiedad "Valor" para obtener el valor de la celda mencionada.

Código:

 Sub Get_Cell_Value1 () Dim CellValue As String CellValue = Rango ("A1"). Valor End Sub 

Ahora la variable "CellValue" contiene el valor de la celda A1. Muestre este valor de variable en el cuadro de mensaje en VBA.

Código:

 Sub Get_Cell_Value1 () Dim CellValue As String CellValue = Rango ("A1"). Valor MsgBox CellValue End Sub 

Ok, ejecute el código y vea el resultado en un cuadro de mensaje.

Dado que hay un valor de "INDIA" en la celda A1, también apareció lo mismo en el cuadro de mensaje. Así, por el valor VBA de la celda podemos obtener el valor de la celda.

Ejemplo n. ° 3: obtener valor de una celda a otra

Sabemos cómo obtener valor de la celda usando vba, ahora la pregunta es cómo insertar valor en la celda. Tomemos el mismo ejemplo solamente, para la celda A1 necesitamos insertar el valor de "INDIA" y esto se puede hacer desde el siguiente código.

Código:

 Sub Get_Cell_Value2 () Rango ("A1"). Valor = "INDIA" End Sub 

Esto insertará el valor de "INDIA" en la celda A1, de manera similar, para obtener el valor de una celda a otra, podemos escribir el código como se muestra a continuación.

Código:

 Sub Get_Cell_Value2 () Rango ("A5"). Valor = Rango ("A1"). Valor Fin Sub 

Déjame explicarte el código.

“Para la celda A5 necesitamos el valor que es del valor de la celda A1”, eso es todo lo que dice este código. Entonces esto obtendrá el valor de la celda A1 a A5 usando el código VBA.

Cosas para recordar

  • Insertar valor en las celdas y obtener el valor de la celda requiere que se utilice la propiedad VBA "VALUE".
  • Usando la propiedad CELLS podemos seleccionar solo una celda pero usando el objeto RANGE podemos seleccionar múltiples celdas.