Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Оператор выбора




End Function

End if

End if

В блочном операторе первая строка обязательно заканчивается словом Then.

Во время выполнения оператора if проверяется условие1 и, если результат сравнения равен Истина (true), то выполняется блок операторы1.

Если условие1 равно Ложь (False), то проверяется условие2 и, если результат равен True, выполняется блок операторы2.

Далее могут следовать другие операторы Elseif, в каждом из которых будут последовательно проверяться условия, пока одно из них не примет значение True.

Если ни одно из условий не равно True, выполняются операторы, стоящие за ключевым словом Else.

В любом случае, выполнится только один блок операторов, следующих за первым условием, имеющим значение True; все остальные операторы будут пропущены, даже если их условия имеют значение True.

Пример. Разработать функцию, которая вычисляет календарное количество дней любого месяца любого года:

Function Дней_в_месяце(Месяц, Год)

if (Месяц = 4)OR (Месяц = 6)OR (Месяц = 9)OR (Месяц = 11)Then

Дней_в_месяце =30

Elseif Месяц = 2 Then

if Int (Год / 4)*4 <> ГодThen Дней_в_месяце =28 Else Дней_в_месяце =29

Else:Дней_в_месяце =31

Аргументами функции являются два числа – номер месяца и номер года.

В первой строке блочного условного оператора задается число дней 30 в месяцах с соответствующими номерами.

В операторе Elseif определяется количество дней в феврале в зависимости от номера года. Если номер года делится с остатком на 4, то год не високосный. Здесь используется стандартная функция VBA Int() для определения целой части от деления номера года на 4. Если год високосный, то результат деления, умноженный на 4, будет равен номеру года. Если деление было с остатком, то при умножении результата деления на 4 получится число меньшее исходного номера года, и значит год не високосный.

Во всех остальных случаях число дней в месяце равно 31.

Результаты расчетов всякий раз сохраняются в переменной с именем функции

В языке VBA для организации выбора по значениям некоторого параметра можно применить структуру Select… Case

Синтаксис структуры

Select Case выражение

Case список1

операторы1

Case список2

операторы2

Case Else

операторыЗ

End Select

Во время выполнения оператора Select … Case происходит вычисление выражения.

Значение выражения сравнивается со значениями в списке1. Значения в списке1 разделяются запятыми. Если значение выражения равно одному из значений в списке, то выполняется блок операторы1.

Иначе этот блок пропускается и проверяется следующий оператор Case.

Если значение выражения не равно ни одному значению из всех списков, то выполняется блок операторыЗ, следующий за ключевыми словами Case Else.

Так же как и в структуре If, в структуре Select … Case выполняется только один блок операторов.

Процедуру из предыдущего примера можно переписать с использованием оператора Select…Case и м.б., этот смотрится более понятным

Function Дней_в_месяце(Месяц, Год)




Поделиться с друзьями:


Дата добавления: 2015-05-10; Просмотров: 372; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.013 сек.