Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Инструкция For-Each-Next с семействами
Преимущества For- Each- Next при работе с массивами бесспорны, но они мерки рядом с достоинствами этой структуры в обращении с объектами семейств. Рассмотрим простой пример. Sub ForEachNextWorksheet() Dim SheetVar As Worksheet For Each SheetVar In ActiveWorkbook.Worksheets MsgBox SheetVar.Name Next End Sub В ForEachNextWorksheet происходит обращение к каждому рабочему листу из семейства Worksheets активной рабочей книги, в результате которого имена листов последовательно выводятся на экран. Вы вправе изменить значения свойств Name рабочих листов в этом примере. Sub ForEachNextWorksheet() Dim SheetVar As Worksheet For Each SheetVar In ActiveWorkbook.Worksheets SheetVar.Name = "Work" & SheetVar.Name MsgBox SheetVar.Name Next End Sub Здесь изменяются имена листов — перед каждым из них добавляется слово 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 Next End Sub Инструкцию For- Each- Next можно применять и для вызова методов объектов семейства. Следующая процедура закрывает все книги, оставляя лишь одну, в которой размещена сама процедура. Sub ForEachNextWorkbook() Dim Book As Workbook For Each Book In Application.Workbooks If Book.Name <> ThisWorkbook.Name Then Book.Close End If Next End Sub В цикле имя каждой рабочей книги сравнивается с именем книги ThisWorkbook. Если имена не совпадают, для книги вызывается метод Close. Управляющая инструкция While-Wend Действие ее подобно действию For- Next, но группа инструкций выполняется не заданное число раз, а до соблюдения определенного условия. В программе WhileWend инструкция While- Wend использована для выделения определенного значения из последовательности случайных чисел. Sub WhileWend() Dim LotteryEntry As Integer LotteryEntry = 0 While LotteryEntry <> 7 LotteryEntry = Int(10 * Rnd()) Beep Wend MsgBox "Выпал номер " & LotteryEntry & ". Вы выиграли!" End Sub Программа WhileWend гарантирует, что в информационном окне всегда отображается заданное число. Цикл While- Wend выполняется, пока значение переменной LotteryEntry не станет равным 7 (в условии использован оператор неравенства <>). При каждом выполнении цикла этой переменной присваивается случайное значение от 0 до 9, а затем (впрочем, без особой надобности) вызывается функция VBA Веер, подающая звуковой сигнал через внутренний динамик компьютера. Запустите эту программу несколько раз, и Вы услышите разное количество сигналов, в зависимости от того, на каком шаге генератор случайных чисел вернет число 7.
Замечание: Чтобы генератор случайных чисел при каждом запуске приложения выдавал новую последовательность случайных чисел, вставьте в начало программы команду Randomize. Если Вы этого не сделаете, при каждом открытии файла рабочей книги будет генерироваться одна и та же последовательность. Рассмотрим структуру цикла While- Wend подробнее.
Комментарии в программе Комментарий — это любые символы справа от апострофа ('). Их может быть много — целая строка кода, или несколько — в конце строки с командой. Если Вы предпочли второй вариант, выравнивайте их с помощью символов табуляции. Помните, что комментарии должны делать код более понятным, а не запутывать его.
|
|||||||||||||||
Последнее изменение этой страницы: 2021-12-15; просмотров: 63; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.231.52 (0.009 с.) |