Свойство End объекта Range применяется для поиска первых и последних заполненных ячеек в VBA Excel — аналог сочетания клавиш Ctrl+стрелка.
Свойство Range.End
Свойство
End
объекта Range
возвращает объект Range
, представляющий ячейку в конце или начале заполненной значениями области исходного диапазона по строке или столбцу в зависимости от указанного направления. Является в VBA Excel программным аналогом сочетания клавиш — Ctrl+стрелка (вверх, вниз, вправо, влево).Возвращаемая свойством Range.End
ячейка в зависимости от расположения и содержания исходной:
Исходная ячейка | Возвращаемая ячейка |
---|---|
Исходная ячейка пустая | Первая заполненная ячейка или, если в указанном направлении заполненных ячеек нет, последняя ячейка строки или столбца в заданном направлении. |
Исходная ячейка не пустая и не крайняя внутри исходного заполненного диапазона в указанном направлении | Последняя заполненная ячейка исходного заполненного диапазона в указанном направлении |
Исходная ячейка не пустая, но в указанном направлении является крайней внутри исходного заполненного диапазона | Первая заполненная ячейка следующего заполненного диапазона или, если в указанном направлении заполненных ячеек нет, последняя ячейка строки или столбца в заданном направлении. |
Синтаксис
1 |
Expression.End (Direction) |
Expression
— выражение (переменная), представляющее объект Range
.
Параметры
Параметр | Описание |
---|---|
Direction | Константа из коллекции XlDirection , задающая направление перемещения. Обязательный параметр. |
Константы XlDirection
:
Константа | Значение | Направление |
---|---|---|
xlDown | -4121 | Вниз |
xlToLeft | -4159 | Влево |
xlToRight | -4161 | Вправо |
xlUp | -4162 | Вверх |
Примеры
Скриншот области рабочего листа для визуализации примеров применения свойства Range.End
:
Примеры возвращаемых ячеек свойством End
объекта Range("C10")
с разными значениями параметра Direction:
Выражение с Range.End | Возвращенная ячейка |
---|---|
Set myRange = Range("C10").End(xlDown) |
Range("C16") |
Set myRange = Range("C10").End(xlToLeft) |
Range("A10") |
Set myRange = Range("C10").End(xlToRight) |
Range("E10") |
Set myRange = Range("C10").End(xlUp) |
Range("C4") |
Пример возвращения заполненной значениями части столбца:
1 2 3 4 5 |
Sub Primer() Dim myRange As Range Set myRange = Range(Range("C10"), Range("C10").End(xlDown)) MsgBox myRange.Address 'Результат: $C$10:$C$16 End Sub |
Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.
Добрый день!
Например, в столбце С стоят значения (1, 3, 8, пусто, 6,5, пусто, 4). Как прописать, что необходим переход на следующую непустую ячейку?
Здравствуйте, Анна!
Прописать переход вниз на непустую ячейку можно так:
Большое спасибо!
Обсуждение закрыто.