VBA – Obtener, establecer o cambiar el valor de Celda

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Dennis Madrid

Last updated on febrero 24, 2022

Este tutorial le enseñará cómo interactuar con los valores de las celdas usando VBA.

Establecer el valor de la celda

Para establecer el valor de una celda, utiliza la propiedad Value del objeto Range o Cells.

Range.Value & Cells.Value

Hay dos maneras de hacer referencia a las celdas en VBA:

  • Objeto Range – Range(«A2»).Value
  • Objeto Cells – Cells(2,1).Value

El objeto Range permite referenciar una celda utilizando la notación estándar «A1». Esto establecerá el valor del rango A2 = 1:

Range("A2").Value = 1

El objeto Cells permite referenciar una celda por su número de fila y número de columna. Esto establecerá el valor del rango A2 = 1:

Cells(2,1).Value = 1

Fíjate que primero introduces el número de fila:

Cells(numeroDeFila, numeroDeColumna)

Establecer los valores de varias celdas a la vez

En lugar de hacer referencia a una sola celda, puedes hacer referencia a un rango de celdas y cambiar todos los valores de las celdas a la vez:

Range("A2:A5").Value = 1

Establecer el valor de la celda – Texto

En los ejemplos anteriores, hemos establecido el valor de la celda igual a un número (1). En cambio, puede establecer el valor de la celda igual a una cadena de texto. En VBA, todo el texto debe estar rodeado de comillas:

Range("A2").Value = "Texto"

Si no rodeas el texto con comillas, VBA pensará que haces referencia a una variable…

Establecer valor de celda igual a variable

También puedes establecer un valor de celda igual a una variable

Dim cadena As String
cadena = "Cadena de texto"

Range("A2").Value = cadena

Obtener el valor de la celda

Puedes obtener los valores de las celdas utilizando la misma propiedad Value que hemos utilizado anteriormente.

Obtener el valor de la celda activa

Para obtener el valor de la Celda Activa y mostrarlo en un cuadro de mensaje:

MsgBox ActiveCell.Value

Asignar el valor de la celda a una variable

Para obtener el valor de una celda y asignarlo a una variable:

Dim var as Variant
 
var = Range("A1").Value

Aquí utilizamos una variable de tipo Variant. Las variables Variant pueden aceptar cualquier tipo de valores. En su lugar, podrías utilizar una variable de tipo String:

Dim var As String
 
var = Range("A1").Value

Un tipo de variable String aceptará valores numéricos, pero almacenará los números como texto. Si sabes que el valor de tu celda será numérico, puedes utilizar un tipo de variable Double (las variables Double pueden almacenar valores decimales):

Dim var as Double
 
var = Range("A1").Value

Sin embargo, si intenta almacenar un valor de celda que contenga texto en una variable Double, recibirá un error de incompatibilidad de tipo:

Asignar texto variable double

 

Otros ejemplos de valores de celda

Copiar valor de la celda

Es fácil establecer un valor de celda igual a otro valor de celda (o «Copiar» un valor de una celda):

Range("A1").Value = Range("B1").Value

Incluso puedes hacer esto con rangos de celdas (los rangos deben ser del mismo tamaño):

Range("A1:A5").Value = Range("B1:B5").Value

Comparar los valores de las celdas

Puede comparar los valores de las celdas utilizando los operadores de comparación estándar. Compruebe si los valores de las celdas son iguales:

MsgBox Range("A1").Value = Range("B1").Value

Devolverá TRUE si los valores de las celdas son iguales. En caso contrario FALSE. También puede crear una sentencia If para comparar los valores de las celdas:

If Range("A1").Value > Range("B1").Value Then
 
  Range("C1").Value = "mayor que"
 
Elseif Range("A1").Value = Range("B1").Value Then
 
  Range("C1").Value = "igual"
 
Else
 
  Range("C1").Value = "menor que"
 
End If

Puede comparar texto de la misma manera (Recuerde que VBA distingue entre mayúsculas y minúsculas)

vba-free-addin

Complemento de Ejemplos de Código de VBA

Acceda fácilmente a todos los ejemplos de código que se encuentran en nuestro sitio.

Simplemente navegue al menú, haga clic y el código se insertará directamente en su módulo. Complemento .xlam.

(¡No se requiere instalación!)

Descarga gratuita

Return to VBA Code Examples