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. |