End Sub. Инструкция For-Each-Next с многомерными массивами

End Sub

Next

Инструкция For-Each-Next с многомерными массивами

End Sub

Next

Здесь нам пришлось определить переменную-счетчик Count1, чтобы организовать цикл и перебрать все элементы массива по номеру. Структура For-Each-Next избавляет нас от этой необходимости. Рассмотрим подробнее ее элементы, использованные в процедуре ForEachNext.

For Each Ключевые слова, отмечающие начало инструкции For-Each-Next

Студент Переменная, которой присваиваются значения элементов группы — массива или семейства объекта. В первом случае переменная должна относиться к типу Variant. Во втором случае Вы можете определить ее как Variant, Object или приписать ей конкретный объектный тип, соответствующий объектам семейства

In Ключевое слово, отделяющее переменную от группы

Студенты Группа, то есть массив или семейство объектов. Количество повторений цикла совпадает с числом элементов в группе. Переменной цикла при первом выполнении присваивается значение первого элемента группы, затем — всех последующих элементов

MsgBox Студент Действие, которое выполняется над элементом группы

Next Ключевое слово, отмечающее конец инструкции. Достигнув его, программа возвращается к началу цикла — инструкции For Each. Если значение переменной цикла совпадет с последним элементом группы, выполнится инструкция, написанная сразу после Next

Замечание:

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

Разберемся, что происходит при использовании в инструкций For-Each-Next двухмерного массива. Обратите внимание, что доступ ко всем элементам массива не зависит от его размерности.

Sub ForEachNext­_2DArray()

Dim Студенты(2, 2) As String

Dim Имя As Variant

Студенты (1,1) = "Иван"

Студенты (1,2) = "Мария"

Студенты (2,1) = "Петр"

Студенты (2,2) = "Галина",

For Each Имя In Студенты

MsgBox Имя

Чтобы выполнить ту же операцию средствами For-Next, нам пришлось бы создать два цикла — один внутри другого.

Программа ForEachNext­_6DArray обращается к каждому элементу шестимерного массива, на каждом шаге увеличивая значение счетчика:

Sub ForEachNext_6DArray()

Dim Массив(5, 5, 5, 5, 5, 5) As Boolean

Dim Var1 As Variant

Dim Var2 As Integer

Var2 = 0

For Each Var1 In Массив

Var2 = Var2 + 1 Next

MsgBox Var2

Представьте себе, какая громоздкая конструкция понадобилась бы, чтобы осуществить те же действия средствами цикла For-Next.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: