VBA Excel. Свойство End объекта Range

    Поиск первых и конечных заполненных ячеек в VBA Excel с помощью свойства End объекта Range. Аналог сочетания клавиш — Ctrl+стрелка (вверх, вниз, вправо, влево).

    Свойство Range.End

    Свойство End объекта Range возвращает объект Range, представляющий ячейку в конце или начале заполненной значениями области исходного диапазона по строке или столбцу в зависимости от указанного направления. Является в VBA Excel программным аналогом сочетания клавиш — Ctrl+стрелка (вверх, вниз, вправо, влево).

    Возвращаемая свойством Range.End ячейка в зависимости от расположения и содержания исходной:

    Исходная ячейка Возвращаемая ячейка
    Исходная ячейка пустая Первая заполненная ячейка или, если в указанном направлении заполненных ячеек нет, последняя ячейка строки или столбца в заданном направлении.
    Исходная ячейка не пустая и не крайняя внутри исходного заполненного диапазона в указанном направлении Последняя заполненная ячейка исходного заполненного диапазона в указанном направлении
    Исходная ячейка не пустая, но в указанном направлении является крайней внутри исходного заполненного диапазона Первая заполненная ячейка следующего заполненного диапазона или, если в указанном направлении заполненных ячеек нет, последняя ячейка строки или столбца в заданном направлении.

    Синтаксис

    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»)

    Пример возвращения заполненной значениями части столбца:


    Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.

    3 комментария для “VBA Excel. Свойство End объекта Range”

    1. Добрый день!
      Например, в столбце С стоят значения (1, 3, 8, пусто, 6,5, пусто, 4). Как прописать, что необходим переход на следующую непустую ячейку?

      1. Евгений

        Здравствуйте, Анна!
        Прописать переход вниз на непустую ячейку можно так:

    Добавить комментарий

    Ваш комментарий будет опубликован после прохождения обязательной модерации. Исходящие ссылки не допускаются. Время модерации составит от нескольких минут до нескольких часов в зависимости от времени суток и занятости модератора.