Свойство Offset объекта Range, возвращающее смещенный диапазон, в том числе отдельную ячейку, в коде VBA Excel. Синтаксис, параметры, примеры.
Синтаксис
Синтаксис свойства Range.Offset:
1 |
Expression.Offset (RowOffset, ColumnOffset) |
Expression – это выражение (переменная), возвращающее исходный объект Range, относительно которого производится смещение.
Параметры
RowOffset – это параметр, задающий смещение диапазона по вертикали относительно исходного на указанное количество строк.
Значение RowOffset | Направление смещения |
---|---|
Отрицательное | вверх |
Положительное | вниз |
0 (по умолчанию) | нет смещения |
ColumnOffset – это параметр, задающий смещение диапазона по горизонтали относительно исходного на указанное число столбцов.
Значение ColumnOffset | Направление смещения |
---|---|
Отрицательное | влево |
Положительное | вправо |
0 (по умолчанию) | нет смещения |
Необходимо следить за тем, чтобы возвращаемый диапазон не вышел за пределы рабочего листа Excel. В противном случае VBA сгенерирует ошибку (Пример 3).
Примеры
Пример 1
Обращение к ячейкам, смещенным относительно ячейки A1:
1 2 3 4 5 6 7 8 |
Sub Primer1() Cells(1, 1).Offset(5).Select MsgBox ActiveCell.Address Cells(1, 1).Offset(, 2).Select MsgBox ActiveCell.Address Cells(1, 1).Offset(5, 2).Select MsgBox ActiveCell.Address End Sub |
Пример 2
Обращение к диапазону, смещенному относительно исходного:
1 2 3 4 |
Sub Primer2() Range("C8:F12").Offset(-3, 5).Select MsgBox Selection.Address End Sub |
Пример 3
Пример ошибки при выходе за границы диапазона рабочего листа:
1 2 3 4 5 6 7 |
Sub Primer3() On Error GoTo ErrorText Cells(1, 1).Offset(-3).Select Exit Sub ErrorText: MsgBox "Ошибка: " & Err.Description End Sub |