Свойство Offset (Смещение), аналогично свойствам Range и Cells, возвращает объект Range. В отличие от упомянутых свойств, Offset применяется только к объекту Range и не применим к другим типам объектов. Это свойство имеет следующий синтаксис:
объект.Offset(смещение_строки, смещение_столбца)
Два аргумента свойства Offset определяют смещение относительно верхнего левого угла указанного диапазона Range. Эти аргументы могут быть положительными (смещение вниз или вправо), отрицательными (смещение вверх или влево) или равными нулю. В примере ниже значение 12 записывается в ячейку, расположенную под активной ячейкой (для большего восприятия, активную ячейку я залил жёлтым цветом).
ActiveCell.Offset(1, 0).Value = 12
В следующем примере значение 15 записывается в ячейку, расположенную над активной ячейкой.
ActiveCell.Offset(-1, 0).Value = 15
Если активная ячейка находится в строке 1, то свойство Offset в предыдущем примере вызовет ошибку, так как вернет несуществующий объект Range (т.е. выше строки-то нет).
Свойство Offset наиболее удобно использовать для изменения значений переменных в цикле (но об этом позже).
В следующем примере значение 24 записывается в ячейку, расположенную слева от активной ячейки.
ActiveCell.Offset(0,-1).Value = 24
В следующем примере значение 16 записывается в ячейку, расположенную справа от активной ячейки.
ActiveCell.Offset(0, 1).Value = 16
Начиная со следующей статьи будем знакомиться с вводом кода VBA