Свойство Range.Value (Excel)

Возвращает или задает значение Variant , представляющее значение указанного диапазона.

Синтаксис

expression. Value (RangeValueDataType)

выражение: переменная, представляющая объект Range.

Параметры

Имя Обязательный или необязательный Тип данных Описание
RangeValueDataType Необязательный Variant Тип данных значения диапазона. Может быть константой XlRangeValueDataType .

Замечания

При задании диапазона ячеек с содержимым XML-файла электронной таблицы используются только значения первого листа в книге. Невозможно задать или получить несогласительный диапазон ячеек в формате электронной таблицы XML.

Элемент range по умолчанию переадресовывает вызовы значения value без параметров. Таким образом, someRange = someOtherRange эквивалентно someRange.Value = someOtherRange.Value.

Для диапазонов, первая область которых содержит несколько ячеек, значение возвращает значение Variant , содержащее двухмерный массив значений в отдельных ячейках первого диапазона.

При назначении массива размером 2 тумм для свойства Value значения будут скопированы в диапазон за одну операцию. Если целевой диапазон больше массива, остальные ячейки получат значение ошибки.

Назначение массива диапазону с несколькими областями не поддерживается должным образом, и его следует избегать.

Пример

В этом примере для ячейки A1 на листе 1 активной книги задается значение 3,14159.

Worksheets("Sheet1").Range("A1").Value = 3.14159

В этом примере выполняется цикл по ячейкам A1:D10 на листе 1 активной книги. Если одна из ячеек имеет значение меньше 0,001, код заменяет значение на 0 (ноль).

For Each cell in Worksheets("Sheet1").Range("A1:D10") 
   If cell.Value < .001 Then 
      cell.Value = 0 
   End If 
Next cell

В этом примере выполняется цикл над значениями в диапазоне A1:CC5000 на Листе1. Если одно из значений меньше 0,001, код заменяет значение на 0 (ноль). Наконец, он копирует значения в исходный диапазон.

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

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.