Для того чтобы перебрать ячейки в экселе можно использовать цикл 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
