Propiedad Range.Value (Excel)
Devuelve o establece un valor Variante que representa el valor del rango especificado.
Sintaxis
expresión.Valor (RangeValueDataType)
expresión Variable que representa un objeto Range.
Parameters
Nombre | Obligatorio/opcional | Tipo de datos | Descripción |
---|---|---|---|
RangeValueDataType | Opcional | Variant | El tipo de datos de valor de rango. Puede ser una constante XlRangeValueDataType constante. |
Comentarios
Al configurar un rango de celdas con el contenido de un archivo de hoja de cálculo XML, solo se usan los valores de la primera hoja del libro. No puede establecer ni obtener un rango discontinuo de celdas en el formato de hoja de cálculo XML.
El miembro predeterminado de un Rango reenvía llamadas sin parámetros alValor. Por lo tanto, someRange = someOtherRange
equivale a someRange.Value = someOtherRange.Value
.
Para los rangos cuya primera área contiene más de una celda, Valor devuelve una Variante que contiene una matriz bidimensional de los valores de las celdas individuales del primer rango.
Al asignar una matriz atenuada de 2 a la propiedad Valor copiará los valores en el rango en una operación. Si el rango de destino es mayor que la matriz, el resto de las celdas recibirán un valor de error.
No es posible asignar una matriz a un rango de varias áreas correctamente y es necesario evitarlo.
Ejemplo
Este ejemplo establece el valor de la celda A1 en la Hoja1 del libro activo en 3,14159.
Worksheets("Sheet1").Range("A1").Value = 3.14159
Este ejemplo bucle en las celdas A1:D10 de la Hoja1 del libro activo. Si una de las celdas tiene un valor menor que 0.001, el código lo reemplaza por 0 (cero).
For Each cell in Worksheets("Sheet1").Range("A1:D10")
If cell.Value < .001 Then
cell.Value = 0
End If
Next cell
En este ejemplo se recorren los valores del rango A1:CC5000 de Hoja1. Si uno de los valores es menor que 0,001, el código reemplaza el valor por 0 (cero). Por último, se copian los valores en el rango original.
Public Sub TruncateSmallValuesInDataArea()
Dim dataArea As Excel.Range
Set dataArea = ThisworkBook.Worksheets("Sheet1").Range("A1:CC5000")
Dim valuesArray() As Variant
valuesArray = dataArea.Value
Dim rowIndex As Long
Dim columnIndex As Long
For rowIndex = LBound(valuesArray, 1) To UBound(valuesArray, 1)
For columnIndex = LBound(valuesArray, 2) To UBound(valuesArray, 2)
If valuesArray(rowIndex, columnIndex) < 0.001 Then
valuesArray(rowIndex, columnIndex) = 0
End If
Next
Next
dataArea.Value = valuesArray
End Sub
Soporte técnico y comentarios
¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.