For
Each <элемент>In<набор>
[<блок
операторов >]
[Exit
For]
– используется
для прерывания цикла
[<блок
операторов >]
Next
[<элемент>]
Пример
1:
Суммирование элементов массива
Dim
A As Variant
Dim
b, s as Integer
A
= Array (1, 4, 12, 23, 34, 3, 23)
S
= 0
b=InputBox
(" введите с клавиатуры значение для b ")
For
Each b in A
S=S+b
Next
b
Пример
2:
S
= 0
For
Each с in Selection.Cells
S
= S+c.value
Next
c 'Из выделенного диапазона
MsgBox
“S=”&CStr(S)
Пример
3: Работа с семейством рабочих листов – удаление
из книги рабочего листа Тест.
For
Each Лист in Worksheets
If
Лист.Name = “Tест” then
Лист.Delete
End
If
Next
Лист
Пример
4: Работа с семейством ячеек в диапазоне А1 : С4,
ячейки с положительными значениями окрашиваются в синий цвет, а
с неположительными – в красный.
With
Ячейка
if
.value <=0 then
.Interior.ColorIndex
=3
else
.Interior.ColorIndex =5
End
if
End
With
Next
Ячейка
Пример
5: Вычислить сумму элементов массива а(30), значения
которых лежат в диапазоне [2],
[5].
Private
Sub CommandButton1_Click()
Dim
а (30) Аs 1ntegег, i, k, sum Аs Integег
'внесение
в массив значений элементов массива с рабочего листа
i
= 1
Dо
Whi1е i <= 30
а(i)
= Се11s( (i + 1) , 1)
i
= i + 1: Lоор
i
=1
k
= 1
sum
= 0
Dо
Whi1е i <= 30
If
а(i) >= 2 And а(i) <= 5 Then
Лист1.Rаngе("В"
& k + 1).vа1ue = i
k
= k + 1
sum=
sum + а (i)
End
If
i=i
+ 1
Lоор
Лист1.Rаngе("С2").vа1uе
= sum
End
Sub
Privatе
Sub СоmmandВutton2_С1iсk ()
Dim
i Аs Integег
i
= 1
Dо
Whi1е i <= 30
Се11s
( (i + 1) , 2) = " "
i
= i + 1
Lоор
Се11s
(2, 3) = " "
End
Sub