Свойство 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 и обратная связь.