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.