Как продвинуть сайт на первые места?
Вы создали или только планируете создать свой сайт, но не знаете, как продвигать? Продвижение сайта – это не просто процесс, а целый комплекс мероприятий, направленных на увеличение его посещаемости и повышение его позиций в поисковых системах.

Ускорение продвижения
Если вам трудно попасть на первые места в поиске самостоятельно, попробуйте технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Если ни один запрос у вас не продвинется в Топ10 за месяц, то в SeoHammer за бустер вернут деньги.



Иллюстрированный самоучитель по Microsoft Access 2002

Управляющие конструкции

Рассмотрим еще одну разновидность цикла For…Next, часто использующуюся в VBA при обработке объектов, составляющих массив или семейство однородных объектов. В этой разновидности цикла счетчик отсутствует, а тело цикла выполняется для каждого элемента массива или семейства объектов. Вот синтаксис такого цикла:

For Each <элемент> In <совокупность>
<блокОператоров>
Next [<элемент>]

Где:

  • <элемент> – это переменная, используемая для ссылки на элементы семейства объектов;
  • <совокупность> – это имя массива или семейства.

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

Public Sub EnumerateAllFields()
Dim MyBase As Database
Dim tdf As TableDef, fid As Field
Set MyBase = CurrentDb()
For Each tdf In MyBase.TableDefs
Debug.Print "Таблица: " & tdf.Name
For Each fid In tdf.Fields
Debug.Print " Поле: " & fid.Name Next fid
Next tdf
Set MyBase = Nothing
End Sub

Итак, в операторах Dim мы объявили переменную MyBase как объект "база данных DАО", переменные tdf и fid – как определение таблицы и поле таблицы, соответственно. Оператор Set назначает переменной MyBase текущую открытую базу данных. Далее для каждого определения таблицы выполняется вывод на печать названия таблицы, а затем вложенный цикл такого же типа печатает названия всех ее полей.

Приведем еще один пример использования подобного оператора цикла For Each…Next для обработки всех элементов многомерного массива. Пусть у нас имеется трехмерный числовой массив из 1000 элементов (размерами 10x10x10), который мы хотим заполнить случайными вещественными числами в диапазоне от 0 до 1. Если бы мы применяли обычные циклы For…Next со счетчиками, используя счетчики в качестве индексов элементов массива, то для решения этой задачи потребовалось бы написать три вложенных цикла For… Next:

Dim tArray(9, 9, 9) As Single
Dim i% , j% , k%
Randomize
For i = 0 To 9
For j = 0 To 9
For k = 0 To 9
tArray(i, j, k) = Rnd()
Next k
Next j
Next i

На самом же деле достаточно всего одного цикла, если вместо циклов со счетчиками воспользоваться циклом For Each… Next:

Dim tArray(9, 9, 9) As Single
Dim elem As Variant
Randomize
For Each elem In tArray
elem = Rnd()
Next

Еще раз порекомендуем использовать отступы при записи циклов, так же, как и при записи операторов ветвления.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.