For Each Loop in VBA: A Comprehensive Guide
For each в VBA является циклом, который предназначен для обработки коллекций, массивов и других объектов, которые содержат набор элементов. Он работает следующим образом: вы выбираете переменную, которая будет хранить каждый элемент коллекции, затем перебираете элементы коллекции и выполняете нужные действия с каждым из них.
Пример использования for each для работы с коллекцией объектов Excel:
Dim cell As Range
For Each cell In Range("A1:A10") 'перебор элементов коллекции Range
cell.Value = cell.Value * 2 'например, умножение каждого значения на 2
Next cell
Также for each может использоваться для работы с массивами или коллекцией пользовательских объектов:
Dim arr(2) As Integer ' создание массива
arr(0) = 1: arr(1) = 2: arr(2) = 3
Dim num As Integer
For Each num In arr 'перебор элементов массива
Debug.Print num + 1 'например, вывод каждого значения на экран с добавлением 1
Next num
'определение пользовательского класса Person
Class Person
Public Name As String
Public Age As Integer
End Class
Dim people As New Collection 'создание коллекции объектов Person
people.Add New Person With {.Name = "John", .Age = 30}
people.Add New Person With {.Name = "Anna", .Age = 25}
people.Add New Person With {.Name = "Tom", .Age = 40}
Dim person As Person
For Each person In people 'перебор объектов класса Person в коллекции people
Debug.Print person.Name & " is " & person.Age & " years old." 'например, вывод информации о каждом объекте
Next person
В результате выполнения каждого из этих примеров будет выполнен перебор каждого элемента коллекции, массива или коллекции пользовательских объектов. Каждый элемент будет присвоен переменной, и для него будут выполнены нужные действия, которые заданы в цикле.