VBA – Obtener, establecer o cambiar el valor de Celda
In this Article
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:
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)