Вместо того, чтобы пытаться сделать IF ELSE
для каждого возможного сценария, вы можете сделать цикл.
Что-то вроде
For i = 22 To 36 'Or however far you are willing to go down
If Cells(i, 2) = "" Then '2 Here being column 2, or "B"
Cells(i, 2) = cll
Exit For 'Stop looking once we found the empty cell
End If
Next i
Я в основном использую вариацию Range("B" & Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).Row)
, чтобы найти первую пустую ячейку после последней использованной ячейки.Но это не работает, если между вашими данными есть пустые строки.
Вы также можете использовать find
Set emptyRng = Range("B22:B" & Rows.Count).Find(What:="", lookat:=xlWhole)
emptyRng.Value = cll
и другие комбинации.Здесь вместо конечного предела я ставлю Rows.Count
, просто чтобы показать некоторые опции.