Скопировать значение ячейки в первую пустую ячейку в столбце «B» - PullRequest
0 голосов
/ 15 мая 2019

Как скопировать значение ячейки в первую пустую ячейку в столбце B, поэтому, если диапазон («B22») имеет значение, чем значение, указанное ниже

Мой код

Set Rng = Range("B36:B360")
For Each cll In Rng
   If cll.Row < Today And cll.Value <> "" And cll.Font.Color = vbBlack Then
If Range("B22") = "" Then
    Range("B22") = cll
Else
    Range("B23") = cll
End If

Но я будуу меня есть 10 или более ячеек, которые мне нужно скопировать в ячейку B22 и ниже, поэтому должен быть другой способ вставить эти ячейки?

1 Ответ

1 голос
/ 16 мая 2019

Вместо того, чтобы пытаться сделать 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, просто чтобы показать некоторые опции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...