Когда вы смотрите вниз на первую пустую ячейку, вы можете избежать цикла и использовать
Код включает в себя тест, чтобы убедиться, что код не выполняется, если весь столбец A пуст -т. е. если диапазон от A1 вниз распространяется до нижней части листа, а A1 пусто
Этот код добавляет образец формулы, связывающий каждую ячейку в столбце D с соответствующей строкой в столбце B
Sub FillData()
Dim rng1 As Range
Set rng1 = Range([a1], [a1].End(xlDown))
If Not (rng1.Rows.Count = Rows.Count And Len([a1].Value) = 0) Then rng1.Offset(0, 3).FormulaR1C1 = "=RC2"
End Sub