Как перебрать каждую строку в столбце K, пока столбец A не станет пустым - PullRequest
0 голосов
/ 03 июня 2019

Я новичок в VBA и пытаюсь понять, как сделать следующее:

  • Перебрать все строки в столбце K, пока A не станет пустым
  • Если ячейка в столбце K пуста, заполните ее значением в той же строке в столбце E
  • Если K все еще пусто, заполните его значением в той же строке в столбце G
  • Если K все еще пусто, заполните его значением в той же строке в столбце I

У меня нет проблем с получением кода для просмотра одной конкретной строки, но я не могу понять, как заставить его циклически проходить по всем строкам, где A не пусто.

     Sub FillEmptyCells()

     Dim Lastrow As Long

     Lastrow = Range("A" & Rows.Count).End(xlUp).Row

     Do Until IsEmpty("A1:A")

     If IsEmpty(Range("K1").Value) = True Then
       Range("K1") = Range("E1")
     End If

     If IsEmpty(Range("K1").Value) = True Then
       Range("K1") = Range("G1")
     End If

     If IsEmpty(Range("K1").Value) = True Then
       Range("K1") = Range("I1")
     End If

     Loop

     End Sub

1 Ответ

1 голос
/ 03 июня 2019

Вот один из способов сделать это:

Sub tgr()

    Dim ws As Worksheet
    Set ws = ActiveWorkbook.ActiveSheet

    With ws.Range("K1:K" & ws.Cells(ws.Rows.Count, "A").End(xlUp).Row)
        .Formula = "=IF(E" & .Row & "<>"""",E" & .Row & ",IF(G" & .Row & "<>"""",G" & .Row & ",I" & .Row & "))"
        .Value = .Value
    End With

End Sub
...