Este tutorial le enseñará cómo interactuar con Cell Values usando VBA.
Establecer valor de celda
Para establecer un valor de celda, use la propiedad Value del objeto Range o Cells.
Range.Value & Cells.Value
Hay dos formas de hacer referencia a la (s) celda (s) en VBA:
- Objeto de rango - Rango ("A2"). Valor
- Objeto de celdas - Celdas (2,1) .Valor
El objeto Range le permite hacer referencia a una celda utilizando la notación estándar "A1".
Esto establecerá el valor del rango A2 = 1:
1 | Rango ("A2"). Valor = 1 |
El objeto Cells le permite hacer referencia a una celda por su número de fila y su número de columna.
Esto establecerá el valor del rango A2 = 1:
1 | Celdas (2,1) .Valor = 1 |
Observe que ingresa primero el número de fila:
1 | Celdas (Row_num, Col_num) |
Establecer valores de varias celdas a la vez
En lugar de hacer referencia a una sola celda, puede hacer referencia a un rango de celdas y cambiar todos los valores de celda a la vez:
1 | Rango ("A2: A5"). Valor = 1 |
Establecer valor de celda: texto
En los ejemplos anteriores, establecemos el valor de la celda igual a un número (1). En su lugar, puede establecer el valor de la celda igual a una cadena de texto. En VBA, todo el texto debe estar entre comillas:
1 | Rango ("A2"). Valor = "Texto" |
Si no rodea el texto con citas, VBA pensará que está haciendo referencia a una variable …
Establecer valor de celda: variable
También puede establecer un valor de celda igual a una variable
1234 | Dim strText como cadenastrText = "Cadena de texto"Rango ("A2"). Valor = strText |
Obtener valor de celda
Puede obtener valores de celda usando la misma propiedad Value que usamos anteriormente.
Obtenga valor de ActiveCell
Para obtener el valor de ActiveCell y mostrarlo en un cuadro de mensaje:
1 | MsgBox ActiveCell.Value |
Asignar valor de celda a variable
Para obtener un valor de celda y asignarlo a una variable:
123 | Dim var como variantevar = Rango ("A1"). Valor |
Aquí usamos una variable de tipo Variant. Las variables variantes pueden aceptar cualquier tipo de valores. En su lugar, puede utilizar un tipo de variable String:
123 | Dim var como cadenavar = Rango ("A1"). Valor |
Un tipo de variable de cadena aceptará valores numéricos, pero almacenará los números como texto.
Si sabe que el valor de su celda será numérico, puede usar un tipo de variable doble (las variables dobles pueden almacenar valores decimales):
123 | Dim var como doblevar = Rango ("A1"). Valor |
Sin embargo, si intenta almacenar un valor de celda que contiene texto en una variable doble, recibirá un error de falta de coincidencia de tipo:
Otros ejemplos de valores de celda
Copiar valor de celda
Es fácil establecer un valor de celda igual a otro valor de celda (o "Copiar" un valor de celda):
1 | Rango ("A1"). Valor = Rango ("B1"). Valor |
Incluso puede hacer esto con rangos de celdas (los rangos deben ser del mismo tamaño):
1 | Rango ("A1: A5"). Valor = Rango ("B1: B5"). Valor |
Comparar valores de celda
Puede comparar los valores de las celdas utilizando los operadores de comparación estándar.
Pruebe si los valores de las celdas son iguales:
1 | MsgBox Range ("A1"). Valor = Rango ("B1"). Valor |
Devolverá VERDADERO si los valores de celda son iguales. De lo contrario, FALSO.
También puede crear una declaración If para comparar valores de celda:
12345678910111213 | Si Rango ("A1"). Valor> Rango ("B1"). Valor EntoncesRango ("C1"). Valor = "Mayor que"Elseif Rango ("A1"). Valor = Rango ("B1"). Valor EntoncesRango ("C1"). Valor = "Igual"DemásRango ("C1"). Valor = "Menor que"Terminara si |
Puede comparar el texto de la misma manera (recuerde que VBA distingue entre mayúsculas y minúsculas)