Сегодня
МЕНЮ
ПОПУЛЯРНЫЕ СТАТЬИ
Новости
Flipper - надувной круг для купания малышей с первых дней жизни
Сложности с купанием новорожденных решены компанией ООО «РОКСИ» Компания «Рокси» , осуществляющая производство и дистрибуцию товаров для новорожденных и малышей, выпустила на российский

Надувные замки и бассейны для детей
На протяжении многих лет, на праздниках повсеместно используют надувные замки, в качестве развлечения для детей. Это идеально подходит для празднования дня рождения ребенка. Такие замки можно арендовать

Надувной бассейн Intex 28160 Easy Set Pool (457 х 91 см)
Надувной бассейн Intex 28160 Easy Set Pool (457 х 91 см) Доступно изображений: 2 in-28160 На складе: нет Описание товара Надувной бассейн "Intex 28160

Надувной бассейн Summer Escapes P21-1030 (305 х 76 см)
Надувной бассейн Summer Escapes P21-1030 (305 х 76 см) Доступно изображений: 2 se-p21-1030 На складе: нет Описание товара Надувной бассейн "Summer Escapes

Односпальный надувной матрас Intex 67740 Pillow Rest Mid-Rise Bed (без насоса)
Односпальный надувной матрас Intex 67740 Pillow Rest Mid-Rise Bed (без насоса) Доступно изображений: 3 in-67740 На складе: нет Описание товара Надувной

Lamzac: реальные отзывы о надувном диване Ламзак
Невероятно удобный надувной шезлонг ламзак станет полезным на пляже, в походе или же просто на отдыхе в парке. Теперь не нужно будет искать место для отдыха, вы просто сможете разместить надувной диван

Надувная мебель. Бизнес идея №59
Здравствуйте, уважаемые читатели блога mlnrub.ru. Пока я печатал предыдущую статью, у меня возникла новая бизнес идея, связанная с продажей надувной мебели. Дешевая и симпатичная надувная мебель была замечена

Надувной диван Ламзак (Lamzac) зеленый
Надувной диван Ламзак (Lamzac) Зеленый - что это такое? Ели никогда ранее вы о нем нее слышали, тогда обязательно прочитайте эту статью. Вероятно, вы сумеете открыть для себя нечто новое. Собственно, в

Розетка надувные лодки


Спасательные жилеты, дайвинг оборудование аксессуары, надувные лодки и байдарки, доски для серфинга, надувные матрасы, обувь для водных видов спорта, фрисби бумеранги, воздушные змеи с Алиэкспресс
Вот уже на носу пора, когда мы надеваем купальники и топаем на пляж. Даже в такое прекрасное время года как лето, нас ожидает масса опасностей, особенно на воде. Так же как нужно готовить сани с лета,

VBA Excel. Цикл For...Next

Опубликовано: 23.08.2018

видео VBA Excel. Цикл For...Next

-18- VBA Excel. Цикл For Each Next (Циклы ч.2)

Цикл For...Next в VBA Excel, его синтаксис и описание отдельных компонентов. Примеры использования цикла For...Next.

Цикл For...Next в VBA Excel предназначен для выполнения группы операторов необходимое количество раз, заданное управляющей переменной цикла - счетчиком. При выполнении цикла значение счетчика после каждой итерации увеличивается или уменьшается на число, указанное выражением оператора Step, или, по умолчанию, на единицу. Когда необходимо применить цикл к элементам, количество которых и индексация в группе (диапазон, массив, коллекция) неизвестны, следует использовать цикл For Each... Next .


-17- VBA Excel. Цикл For Next. (Циклы ч.1)

Синтаксис цикла For...Next Компоненты цикла For...Next Примеры циклов For...Next

Синтаксис цикла For...Next

For counter = start To end [ Step step ] [ statements ] [ Exit For ] [ statements ] Next [ counter ] For счетчик = начало To конец [ Step шаг ] [ операторы ] [ Exit For ] [ операторы ] Next [ счетчик ]

В квадратных скобках указаны необязательные атрибуты цикла For...Next.

Компоненты цикла For...Next

Компонент Описание
counter Обязательный атрибут. Числовая переменная, выполняющая роль счетчика, которую еще называют управляющей переменной цикла.
start Обязательный атрибут. Числовое выражение, задающее начальное значение счетчика.
end Обязательный атрибут. Числовое выражение, задающее конечное значение счетчика.
Step* Необязательный атрибут. Оператор, указывающий, что будет задан шаг цикла.
step Необязательный атрибут. Числовое выражение, задающее шаг цикла. Может быть как положительным, так и отрицательным.
statements Необязательный** атрибут. Операторы вашего кода.
Exit For Необязательный атрибут. Оператор выхода из цикла до его окончания.
Next [ counter ] Здесь counter - необязательный атрибут. Это то же самое имя управляющей переменной цикла, которое можно здесь не указывать.

*Если атрибут Step отсутствует, цикл For...Next выполняется с шагом по умолчанию, равному 1 .

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

Примеры циклов For...Next

Вы можете скопировать примеры циклов в свой модуль VBA, последовательно запускать их на выполнение и смотреть результаты.

Простейший цикл

Заполняем десять первых ячеек первого столбца активного листа цифрами от 1 до 10:

Sub test1() Dim i As Long For i = 1 To 10 Cells(i, 1) = i Next End Sub

Простейший цикл с шагом

В предыдущий цикл добавлен оператор Step со значением 3, а результаты записываем во второй столбец:

Sub test2() Dim i As Long For i = 1 To 10 Step 3 Cells(i, 2) = i Next End Sub

Цикл с отрицательными аргументами

Этот цикл заполняет десять первых ячеек третьего столбца в обратной последовательности:

Sub test3() Dim i As Long For i = 0 To -9 Step -1 Cells(i + 10, 3) = i + 10 Next End Sub

Увеличиваем размер шага до -3 и записываем результаты в четвертый столбец активного листа:

Sub test4() Dim i As Long For i = 0 To -9 Step -3 Cells(i + 10, 4) = i + 10 Next End Sub

Вложенный цикл

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

Sub test5() Dim i1 As Long, i2 As Long For i1 = 1 To 10 'Пятой ячейке в строке i1 присваиваем 0 Cells(i1, 5) = 0 For i2 = 1 To 4 Cells(i1, 5) = Cells(i1, 5) + Cells(i1, i2) Next Next End Sub

Выход из цикла

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

Sub test6() Dim i As Long For i = 1 To 10 Cells(i, 6) = Choose(i, "Медведь", "Слон", "Жираф", "Антилопа", _ "Крокодил", "Зебра", "Тигр", "Ящерица", "Лев", "Бегемот") Next End Sub

Следующий цикл будет искать в шестом столбце крокодила, который съел галоши. В ячейку седьмого столбца цикл, пока не встретит крокодила, будет записывать строку «Здесь был цикл», а когда обнаружит крокодила, запишет «Он съел галоши» и прекратит работу, выполнив команду Exit For. Это будет видно по ячейкам рядом с названиями животных ниже крокодила, в которых не будет текста «Здесь был цикл».

Sub test7() Dim i As Long For i = 1 To 10 If Cells(i, 6) = "Крокодил" Then Cells(i, 7) = "Он съел галоши" Exit For Else Cells(i, 7) = "Здесь был цикл" End If Next End Sub

Результат работы циклов For...Next из примеров:

Результат работы циклов For...Next

Такие данные на активном листе Excel вы получите, если последовательно запустите на выполнение   в редакторе VBA  все семь подпрограмм из примеров, демонстрирующих работу циклов For...Next.

Цикл с дробными аргументами

Атрибуты start, end и step могут быть представлены числом, переменной или числовым выражением:

For i = 1 To 20 Step 2 For i = a To b Step c For i = a - 3 To 2b + 1 Step c/2

В результате вычисления значения переменной вне цикла или выражения внутри его может получиться дробный результат. VBA Excel округлит его до целого числа, используя бухгалтерское округление :

'Значения атрибутов до округления For i = 1.5 To 10.5 Step 2.51 'Округленные значения атрибутов For i = 2 To 10 Step 3

Старайтесь не допускать попадания в тело цикла For...Next неокругленных значений аргументов, чтобы не получить непредсказуемые результаты его выполнения. Если без дробных чисел не обойтись, а необходимо использовать обычное округление, применяйте функцию рабочего листа WorksheetFunction.Round для округления числа перед использованием его в цикле For...Next.

ВХОД
РЕКЛАМА
СЧЕТЧИКИ
rss