Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Синтаксис оператора Select Case
Select Case < выражение> Case < список выражений 1> < операторы 1> ………….. Case < список выражений N> < операторы N> [Case Else < операторы N+1> ] End Select
Здесь < выражение> - любое численное или строковое выражение, < список выражений i> - представляют список выражений, отделенных друг от друга запятыми или (если в интервале), то in to ik, < операторы i> - (i=1, N) – операторы, которые выполняются, если < выражение i> совпадает с любым компонентом < список выражений i>, [Case Else < операторы N+1> ] необязательная конструкция.
Работа: · Вычисляется < выражение> · Если значение < выражение> совпадает со значением из Case < список выражений i>, то выполняются соответствующие < операторы i> и затем управление передается на оператор следующий за оператором Select Case · Если значение < выражение> не совпадает ни с одним из Case < список выражений i>, то при наличии конструкции Case Else выполняются < операторы N+1>. Если конструкция Case Else отсутствует, то сразу выполняется оператор, следующий за оператором Select Case
Пример: Ввести номер дня недели и по его значению вывести какой это день недели: Рабочий день, Суббота или Воскресенье.
Public Sub Оператор_Select_Case1() Dim n_day As Integer Dim day As String n_day = CInt(InputBox(" Введите номер дня недели" )) Select Case n_day Case 1 To 5 day = " Рабочий день" MsgBox " Сегодня - " & day, vbOKOnly + vbInformation Case 6 day = " Суббота" MsgBox " Сегодня - " & day, vbOKOnly + vbInformation Case 7 day = " Воскресенье" MsgBox " Сегодня - " & day, vbOKOnly + vbInformation End Select End Sub
Public Sub Оператор_Select_Case2() Dim n_day As Integer Dim day As String n_day = CInt(InputBox(" Введите номер дня недели" )) Select Case n_day Case 6 day = " Суббота" MsgBox " Сегодня - " & day, vbOKOnly + vbInformation Case 7 day = " Воскресенье" MsgBox " Сегодня - " & day, vbOKOnly + vbInformation Case Else day = " Рабочий день" MsgBox " Сегодня - " & day, vbOKOnly + vbInformation End Select End Sub
Операторы повтора Для организации циклов язык VBA предоставляет несколько гибких и мощных структур – операторы повтора. А) Оператор цикла с параметром ( For — Next) Оператор цикла позволяет повторять группу операторов заданное число раз Синтаксис: For < счетчик цикла> =< начало> To < конец> [Step шаг] < операторы> [Exit For] Next < счетчик цикла> Где: · < счетчик цикла> - любая числовая переменная, в которой сохраняется информация о количестве выполненных проходов цикла (счетчик цикла); · Параметры < начало> и < конец> - это числовые выражения, задающие начальное и конечное значение счетчика и определяющие количество проходов цикла. · Числовая переменная шаг задает приращение, на которое увеличивается счетчик цикла при каждом проходе. [Step шаг] необязательная фраза. При её отсутствии VBA (по умолчанию) увеличивает счетчик цикла на единицу. · Во фразе Next < счетчик цикла> имя переменной счетчик указывать необязательно. Но при указании имени переменной улучшается читабельность программы и в случае вложенных циклов For — Next сразу видно, какому именно циклу принадлежит данное слово Next Работа: · Переменной < счетчик цикла> присваивается значение параметра < начало> и проверяется условие счетчик цикла < конец. Если условие неверно, то управление передается оператору, следующему за Next. Если же условие - верно, то выполняются все операторы, входящие в блок, обозначенный как < операторы>, вплоть до ключевого слова Next · Значение переменной < счетчик цикла> увеличивается на величину, заданную во фразе [Step шаг] или на единицу, если фраза Step не указана · Управление возвращается · Данный процесс будет выполняться, пока значение < счетчик цикла> не достигнет значение < конец> · Досрочно завершить цикл For — Next можно с помощью оператора Exit For, который располагается в том месте блока < операторы>, где необходимо выйти из оператора цикла For — Next не дожидаясь условия завершения цикла.
На блок – схеме оператор изображается следующим образом: Пример 1 Вычислить n-ый член последовательности, заданный формулой , если
Public Sub Prog1() Dim n As Byte Dim a1 As Integer, a2 As Integer, an As Integer n = CByte(InputBox(" введите N" )) a1 = 1: a2 = 1 For i = 3 To n an = a2 + a1 a1 = a2: a2 = an Next i MsgBox n & " -й член последовательности = " & an End Sub
Пример 2 Задана последовательность хi вещественных чисел. Вычислить
Public Sub Prog2() Dim n As Byte Dim i As Byte Dim xi As Double, s As Double n = CByte(InputBox(" введите N" )) s = 0 For i = 1 To n xi= CDbl(InputBox(" Введите " & i & " -й элемент последовательности" )) s = s + xi Next i Worksheets(1).Range(" a1" ) = " Значение суммы равно" Worksheets(1).Cells(2, 1) = s End Sub
В) Операторы повтора Инструкция For…Next применяется в тех случаях, когда известно число повторений. Если число повторений неизвестно, то применяются операторы повтора. Популярное:
|
Последнее изменение этой страницы: 2017-03-11; Просмотров: 541; Нарушение авторского права страницы