Цикл For … Next использует переменную, которая последовательно принимает значения из заданного диапазона (от ... до ... с шагом или без). С каждой сменой значения переменной выполняются действия, заключённые в теле цикла. Это легко понять из простенького примерчика:
For i = 1 To 100
Total = Total + i*15
Next i
В этом простом цикле For … Next используется переменная i, которая последовательно принимает значения 1, 2, 3, … 100, и для каждого из этих значений выполняется код VBA, находящийся внутри цикла.
Цикл For Each похож на цикл For … Next, но вместо того, чтобы перебирать последовательность значений для переменной-счётчика, цикл For Each выполняет набор действий для каждого объекта из указанной группы объектов. В следующем примере с помощью цикла For Each выполняется перечисление всех листов в текущей рабочей книге Excel:
Dim wSheet As Worksheet
For Each wSheet in Worksheets
MsgBox "В книге выявлен лист: " & wSheet.Name
Next wSheet