End Sub. Управляющая инструкция While-Wend

Wend

Управляющая инструкция While-Wend

End Sub

Next

End If

End Sub

Next

End Sub

Next

Здесь изменяются имена листов — перед каждым из них добавляется слово Work. Для восстановления прежних имен введите следующий фрагмент кода.

Sub ForEachNextWorksheet()

Dim SheetVar As Worksheet

Dim x As Integer

x = 1

For Each SheetVar In ActiveWorkbook.Worksheets

SheetVar.Name = "Лист" & x

x = x + 1

MsgBox SheetVar.Name

Инструкцию For-Each-Next можно применять и для вызова методов объектов семейства. Следующая процедура закрывает все книги, оставляя лишь одну, в которой размещена сама процедура.

Sub ForEachNextWorkbook()

Dim Book As Workbook

For Each Book In Application.Workbooks

If Book.Name <> ThisWorkbook.Name Then

Book.Close

В цикле имя каждой рабочей книги сравнивается с именем книги ThisWorkbook. Если имена не совпадают, для книги вызывается метод Close.

Действие ее подобно действию For-Next, но группа инструкций выполняется не заданное число раз, а до соблюдения определенного условия. В программе WhileWend инструкция While-Wend использована для выделения определенного значения из последовательности случайных чисел.

Sub WhileWend()

Dim LotteryEntry As Integer

LotteryEntry = 0

While LotteryEntry <> 7

LotteryEntry = Int(10 * Rnd())

Beep

MsgBox "Выпал номер " & LotteryEntry & ". Вы выиграли!"

Программа WhileWend гарантирует, что в информационном окне всегда отображается заданное число. Цикл While-Wend выполняется, пока значение переменной LotteryEntry не станет равным 7 (в условии использован оператор неравенства <>).

При каждом выполнении цикла этой переменной присваивается случайное значе­ние от 0 до 9, а затем (впрочем, без особой надобности) вызывается функция VBA Веер, подающая звуковой сигнал через внутренний динамик компьютера. Запусти­те эту программу несколько раз, и Вы услышите разное количество сигналов, в за­висимости от того, на каком шаге генератор случайных чисел вернет число 7.

Замечание:

Чтобы генератор случайных чисел при каждом запуске приложения выдавал новую последовательность случайных чисел, вставьте в начало программы команду Randomize. Если Вы этого не сделаете, при каждом открытии файла рабочей книги будет генерироваться одна и та же последовательность.

Рассмотрим структуру цикла While-Wend подробнее.

While Ключевое слово, отмечающее начало инструкции While-Wend
LotteryEntry <> 7 Условие, определяющее, будет или нет выполнен цикл. Если оно соблюдено, цикл выполняется, если нет — управление передается инструкции, стоящей за ключевым словом Wend
LotteryEntry = Int(10 * Rnd()) Первая инструкция цикла
Beep Вторая инструкция цикла
Wend Ключевое слово, отмечающее конец инструкции While-Wend.

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



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