Циклы For
Оператор For предназначен для организации циклов с заранее известным числом повторений. Есть два варианта его использования. Первый - использование конструкции For - Next:
For i = 1 to 10
if Cells(1,i) <> "" then Exit For
Cells(1,i).Value = i
Next i
Переменная i принимает значения от 1 до 10. В случае необходимости выполнение цикла можно прервать командой Exit For.
Второй вариант цикла For позволяет перебирать все элементы, входящие в массив или коллекцию. Он полезен, когда нужно произвести однотипные операции над всем массивом. Описание его такое:
For Each переменная In массив
Действия
Next переменная
Переменная должна иметь тип Variant или Object, в котором можно хранить практически всё. Пример:
Sub Test()
Dim arr(1) As String
arr(0) = "First element"
arr(1) = "Second element"
Dim v As Variant
For Each v In arr
MsgBox (v)
Next v
End Sub
For Each очень удобен для работы с коллекциями. Вот так можно пробежаться по открытым книгам.
Sub Test()
Dim v As Variant
For Each v In Workbooks
MsgBox (v.Name)
Next v
End Sub
Или по листам книги:
Sub Test()
Dim v As Variant
For Each v In Workbooks.Item("book.xls").Sheets
MsgBox (v.Name)
Next v
End Sub