Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Оператор For Each … Next






Инструкция For Each применяется для выполнения одного и того же набора операторов для элемента массива или коллекции. Инструкция For Each имеет следующий формат:

For Each элемент In группа

[ операторы ]

[Exit For]

[ операторы ]

Next

Где группа – имя коллекции или массива, обязательный параметр; элемент – переменная, используемая для итерации по элементам коллекции или массива, может иметь только тип Variant, обязательный параметр; операторы – один или более операторов, которые выполняются для каждого элемента в группе.

Цикл выполняется, если в группе имеется, по крайней мере, один элемент. Все операторы цикла выполняются для каждого элемента в группе. После этого управление передаётся оператору, следующему за ключевым словом Next.

Цикл For Each...Next похож на For...Next за исключением того, что он повторно выполняет одну и ту же группу операторов для каждого элемента набора объектов или массива. Это особенно полезно в том случае, когда не известно число элементов в наборе или когда их количество может измениться, пока работает процедура.

В приведённой ниже процедуре ForEach используется динамический массив Мас, размерность которого L определяется как целая часть произведения значения случайной функции Rnd в операторе ReDim. Определение целой части производится при помощи встроенной функции VBA Int. Если количество элементов массива равно 0, то об этом выдаётся сообщение и происходит выход из процедуры.

По инструкции For i = 1 To L производится присвоение значений элементам массива Мас случайными числами и вывод их на экран.

По инструкции For Each… осуществляется присвоение значений ячейкам A1: AL ячейкам активного рабочего листа A1: AL случайных чисел

Option Base 1

Option Explicit

––––––––––––––––––––––––––––––––––––––––––––––––––––––

Sub ForEach()

Dim Mas() As Single

Dim L As Integer, i As Integer, k As Integer

Dim n As Variant

L = Int(Rnd * 10)

If L = 0 Then

MsgBox " Количество элементов массива равно " & L

Exit Sub

End If

MsgBox " Количество элементов массива равно " & L

ReDim Mas(L) ' Устанавливается размер динамического

' массива

For i = 1 To L

Mas(i) = Rnd

MsgBox " Mas(" & i & ")=" & Mas(i)

Next i

k = 0

For Each n In Mas

k = k + 1

Cells(1, k) = n

Next n

End Sub

Можно выводить все элементы массива в одном окне, предварительно сформировав параметр Prompt.

Sub ForEach1()

Dim Mas() As Single

Dim L As Integer, i As Integer, k As Integer

Dim n As Variant

Dim Massiv As String

L = Int(Rnd * 10)

If L = 0 Then

MsgBox " Количество элементов массива равно " & L

Exit Sub

End If

MsgBox " Количество элементов массива равно " & L

ReDim Mas(L) ' Устанавливается размер динамического

' массива

For i = 1 To L

Mas(i) = Rnd

Massiv = Massiv & " Mas(" & i & ")=" & Mas(i) & _

vbNewLine

Next i

MsgBox Massiv

k = 0

For Each n In Mas

k = k + 1

Cells(1, k) = n

Next n

End Sub


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.007 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал