Если ячейка пуста, взять значение из соседней ячейки Excel VBA

Рейтинг: 0Ответов: 1Опубликовано: 10.04.2023

Цикл проходит, а значение не берется :( Подскажите, как можно обратиться к соседней ячейкe(из колонки J)

Dim i As Long, n As Long
With Columns("I")
    n = .Cells.Count
        For i = 1 To n
            If .Cells(i).Value = 0 And IsEmpty(.Cells(i)) = True Then
                .Cells(i).Value = .Cells(i, i + 1).Value
            End If
        Next
End With

Ответы

▲ 0Принят

Перебирать все 1048576 ячеек в столбце избыточно, лучше ограничиться .UsedRange или найти последнюю ячейку и перебирать до нее. Чтобы обратиться к ячейке справа, используйте смещение .Offset(, 1).

Sub test2()
    Dim cl
    For Each cl In Intersect(ActiveSheet.Columns("I"), ActiveSheet.UsedRange)
        If IsEmpty(cl) Then cl.Value = cl.Offset(, 1)
    Next
End Sub