Range.Offset (RowOffset, ColumnOffset)
Этот метод возвращает диапазон, который смещен к объекту диапазона.
Этот метод не изменяет активный диапазон (в отличие от методов Select и Activate).
Этот пример вводит число 15 в ячейку нижнюю правую от активной ячейки.
ActiveCell.Offset(1, 1).Value = 15
Итак если
ActiveCell.Offset(1, 1).Value = 15
Итак если
Range("B2").Offset(0,0).Address = "B2"
Ячейка сверху
Range("B2").Offset(-1,0).Address = "B1" Range("B2").Offset(-1).Address = "B1"
Ячейка снизу
Range("B2").Offset(1,0).Address = "B3" Range("B2").Offset(1).Address = "B3"
Ячейка справа
Range("B2").Offset(0, 1).Address = "C2" Range("B2").Offset(, 1).Address = "C2"
Ячейка слева
Range("B2").Offset(0, -1).Address = "A2" Range("B2").Offset(, -1).Address = "A2"
Пример из жизни:
ActiveCell.Range("B2").Value = 15
ПРИМЕР:
Sub Button1_Click()
Dim rng As Range, cell As Range
Set rng = Range("I25:I14888")
For Each cell In rng
If IsNumeric(cell.Offset(0, 0)) Then
Else
MsgBox "Mistake: " & cell.Row
cell.Select
End If
If (cell.Offset(0, 0).Value > 0.91) Or (cell.Offset(0, 0).Value < 0.2) Then
'MsgBox "Mistake: " & cell.Row & " " & cell.Offset(0, -4).Value
cell.Offset(0, -4).Value = cell.Offset(-1, -4).Value
cell.Offset(0, -5).Value = cell.Offset(-1, -5).Value
'Exit For
End If
Next cell
End Sub