Для того чтобы перебрать ячейки в экселе можно использовать цикл For Each, пример использования смотрите ниже.
Код макроса с «For Each»
Sub Macros() Application.DisplayAlerts = False row = 1 'начальная строка col = 2 'начальная колонка max_rows = 2000 'максимальное кол-во строк For Each cel In Range(Cells(row, col), Cells(max_rows, col)) 'неоходимые действия cel.Value = "-" Next cel Application.DisplayAlerts = True End Sub
Выход из цикла по условию
Для выхода из цикла, если надо завершить его досрочно, не проходя все ячейки, есть команда Exit For
Пример использования Exit For
Sub Макрос1() Application.DisplayAlerts = False Row = 1 col = 2 max_rows = 500 For Each cel In Range(Cells(Row, col), Cells(max_rows, col)) Field1 = Trim(cel.Text) If Len(Field1) > 0 Then Else Exit For ' выход из цикла End If Next cel Application.DisplayAlerts = True End Sub