Свойство 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). Как прописать, что необходим переход на следующую непустую ячейку?
Здравствуйте, Анна!
Прописать переход вниз на непустую ячейку можно так:
Большое спасибо!
Обсуждение закрыто.