Домашняя страница Undo Do Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Статьи об Excel

МЕНЮ САЙТА
  • 1
  • 2
  • 3

КАТЕГОРИИ РАЗДЕЛА
Циклы [4]
Циклы VBA
Операторы ветвления [2]
Модули классов [2]
Создание, поля, свойства, события, когда использовать
Работа с приложениями и библиотеками [2]
Создание надстроек для ексель на .net, вызов компонентов .net

ОПРОСЫ
Какой версией Excel Вы пользуетесь?
Всего ответов: 35661
Главная » Статьи » Программирование на VBA » Циклы

Цикл Do...Loop
Этот цикл будет выполняться вечно, а точнее Do…Loop используется для выполнения большого количества однообразных действий.

Также у этого цикла имеется возможность досрочного завершения – Exit Do.

Синтаксис:

Do

//инструкции//

[Exit Do] – необязательный аргумент

//инструкции//

Loop

Инструкции - действия, выполнение которых повторяется бесконечно.

Пример №1:

В нижеуказанном примере, во втором столбце проставляется значение ИСТИНА, до того момента пока в следующей (нижней) ячейке пусто.

Цикл завершается если следующая (нижняя) ячейка не пустая (If Not IsEmpty(Cells(i, 2).Offset(1, 0).Value) Then Exit Do).

Sub example1()
 Dim i As Long
 Do
 i = i + 1
 Cells(i, 2).Value = True
 If Not IsEmpty(Cells(i, 2).Offset(1, 0).Value) Then Exit Do
 Loop
End Sub
Пример №2:

В данном примере, в выделенном диапазоне (Selection.Cells) с помощью двух циклов генерируются случайные числа, до тех пор, пока в диапазоне не появятся повторяющиеся значения (If Application.WorksheetFunction.CountIf(Selection.Cells, Rng.Value) > 1 Then Exit Do).

Sub example2 ()
 Dim Rng As Range
 Do
 For Each Rng In Selection.Cells
 If Application.WorksheetFunction.CountIf(Selection.Cells, Rng.Value) > 1 Then Exit Do
 Rng.Value = Round(Rnd(1) * 1000)
 Next
 Loop
End Sub
Категория: Циклы | Добавил: LightZ (10.06.2012)
Просмотров: 12066 | Теги: VBA, цикл, Do, do...loop, циклы, ВБА, Loop | Рейтинг: 5.0/3


Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Яндекс цитирования
© 2010-2016 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!