Введение в информатику. Хамухин А.А. - 104 стр.

UptoLike

Составители: 

103
Next ключевое слово, отмечающее конец инструкции. Достигнув его,
программа возвращается к началу цикла инструкции For-Each. Если значение
переменной цикла совпадет с последним элементом группы, выполнится
инструкция, написанная сразу после Next.
В инструкции For-Each-Next значения элементов массива можно использовать,
но нельзя изменять. На объекты семейств это ограничение не распространяется
изменение их свойств в инструкции For-Each допустимо.
3.10.7. Инструкция For-Each-Next с семействами (объектами)
Преимущества For-Each-Next при работе с массивами бесспорны, но они
меркнут рядом с достоинствами этой структуры в обращении с объектами семейств.
Рассмотрим простой пример.
Sub Pro38()
Dim SheetVar As Worksheet
For Each SheetVar In ActiveWorkbook.Worksheets
MsgBox SheetVar.Name
Next
End Sub
В Рrо38 происходит обращение к каждому рабочему листу из семейства
Worksheets активной рабочей книги, в результате которого имена листов
последовательно выводятся на экран, хотя их количество заранее программисту
неизвестно. Например, изменим значения свойств Name всех рабочих листов книги:
Sub Pro39()
Dim SheetVar As Worksheet
For Each SheetVar In ActiveWorkbook.Worksheets
SheetVar.Name = "Work" & SheetVar.Name
MsgBox SheetVar.Name
Next
End Sub
Здесь изменяются имена листов: перед каждым из них добавляется слово Work.
Для восстановления прежних имен введите следующий фрагмент кода.
Sub Pro40 ()
Dim SheetVar As Worksheet
Dim x As Integer
x = 1
For Each SheetVar In ActiveWorkbook.Worksheets
SheetVar.Name = "Sheet" & x
x = x + 1
MsgBox SheetVar.Name
Next
End Sub