Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Оператор For Each … Next ⇐ ПредыдущаяСтр 4 из 4
Инструкция 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
|