КАТЕГОРИИ: Архитектура-(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 If Else Количество операторов End If должно совпадать с количеством операторов If. End If End If Else End If End Sub End Sub Операторы ветвления В языке VBA имеются два основных типа операторов выбора: операторы условия (линейный и блочный) и переключатели. 1) линейный оператор условия используется для выполнения одного оператора, в зависимости от условия. Формат: IF<Условие>Then<Оператор1>[Else<Оператор2>] Конструкция [Else<Оператор2>] может отсутствовать. Пример1 (альтернативная форма): Sub Условие() If Sheets("товар2").Cells(4,1) = "монитор" _ Then Cells(4,2).Value = 1500 Else Cells(4,2).Value = 500 ‘ если значение ячейки А4 листа Товар2 имеет значение Монитор, то в ячейку В4 поместить число 1500, иначе в ячейку В4 поместить число 500.
Пример2 (безальтернативная форма): Sub Условие1() If Sheets("товар2").Cells(4,1) = "монитор" Then Cells(4,2).Value = 1500 Запись условных линейных операторов неудобна, если по результатам проверки условий надо переходить к большим группам операторов. В этом случае используют блочный оператор.
2) Блочный оператор используется, когда в случае истинности условия необходимо выполнить несколько программных операторов. IF<Условие>Then <Группа операторов1> [Else< Группа операторов2>] Где End If- указывает на окончание блока оператора If. Операторы If могут быть вложенные друг в друга. Такое вложение операторов необходимо, если нужно проверить какое-либо условие при другом условии, которое является истинным. Синтаксис программы: IF<Условие1>Then IF<Условие2> Then <Оператор1> <Оператор2> Например: Sub программа() Dim Name, Rang As String If Name = «Петров» Then If Rang = «Торговый агент» Then Range("A10") = Name & Rang Else Range("A10") = "Агента с указанной фамилией в списке нет" End If End If End Sub
Условия можно записывать с помощью логических операторов, например: Sub месяц1() If Range("A1") = 6 Or Range("A1") = 7 Or Range("A1") = 8 Then Range("A2") = "каникулы" Else Range("A2") = "учебный год" End If End Sub Языком VBA также предусмотрена конструкция для работы с несколькими операторами If. Она применяется в тех случаях, когда необходимо рассмотреть еще несколько условий в дополнение к исходному. Для этого служит конструкция If……Then……ElseIf. В отличии от вложенных операторов конструкция с несколькими операторами If позволяет проверить дополнительное условие, если исходное условие имеет значение ложь. Синтаксис программы: IF<Условие1>Then <Оператор1> ElseIF<Условие2> Then <Оператор2> <Оператор3>
Пример: Sub месяц_СПО() Sheets("месяц").Select If Range("A1") = 12 Then Range("A2") = "декабрь" ElseIf Range("A1") = 1 Then Range("A2") = "январь" ElseIf Range("A1").Value = 2 Then Range("A2") = "февраль" ElseIf Range("A1") = 3 Then Range("A2") = "март" ElseIf Range("A1") = 4 Then Range("A2") = "апрель" ElseIf Range("A1") = 5 Then Range("A2") = "май" Else Range("A2") = "лето или осень" End If End Sub
Переключатели в VBA реализуются оператором Select Case, который позволяет сделать выбор из нескольких альтернативных вариантов в зависимости от значений условного выражения. В) Операторы циклов Цикл – это оператор или группа операторов, которые программа много кратно выполняет до тех пор, пока не получит команду на выполнение других операторов. Существует два основных типа циклов: циклы со счетчиком (используются, когда некоторые действия необходимо повторить заданное количество раз) и циклы с условием (когда некоторые действия должны повторяться до тех пор, пока выполняется определенное условие). Цикл со счетчиком: FOR СчетчикЦикла=НачальноеЗначение TO Конечное значение [ STEP Шаг] NEXT [Счетчик цикла] Где ключевые слова: FOR – начало цикла TO – разделяющее НачальноеЗначение и КонечноеЗначение STEP – задание шага цикла NEXT – конец цикла
Пример: Sub Цикл_пример() Dim Sum As Integer Dim I As Integer Sum = 0 For I = 1 To 4 Sum = Sum + 2 Next I Range("A5") = Sum End Sub Этот цикл эквивалентен четырем операторам Sum=Sum+2 (Sum=8) Пример2: Sub Цикл_пример2() Dim Sum, I As Integer Sum = 0 For I = 1 To 4 Sum = Sum + I Next I Range("A5") = Sum End Sub В данном примере сумма будет равна 10 (0+1+2+3+4) Пример3: Sub Цикл_пример2() Dim Sum, I As Integer Sum = 0 For I = 1 To 4 Step 2 Sum = Sum + I Next I Range("A5") = Sum End Sub В данном примере сумма будет равна 16 (0+1+3+5+7) Главной особенностью данного типа циклов является условие, дающее в результате значение Истина (True) или Ложь (False). Циклы с условием делятся на циклы с предусловием – условие задается в операторе начала цикла и циклы с постусловием – условие задается в операторе в конце цикла. Цикл с предусловием: Цикл с постусловием Do While | Until <условие> Do <Операторы> <Операторы> [Exit Do] [Exit Do] Loop Loop While | Until <условие> Где: Do, Loop – ключевые слова, определяющие начало и окончание цикла; While и Until – ключевые слова, определяющие тип цикла; Цикл Do While выполняется до тех пор, пока, пока условие имеет значение True; Цикл Do Until выполняется до тех пор, пока, пока условие имеет значение False; Exit Do – принудительный выход из цикла. Примеры: Sub Предусловие() Sum = 2 Do While Sum < 10 Sum = Sum + J J = J + 1 Loop Sheets("Алгоритм").Range("A20").Value = Sum End Sub
Sub Предусловие() ‘С окнами сообщений Sum = 2 Do While Sum < 10 Sum = Sum + J MsgBox ("J=") & J J = J + 1 MsgBox ("Сумма") & Sum Loop Sheets("Алгоритм").Range("A20").Value = Sum End Sub
Sub Предусловие1() Dim Sum As Integer Dim J As Integer Sum = 2 Do Until Sum > 9 Sum = Sum + J J = J + 1 Loop Sheets("Алгоритм").Range("A19").Value = Sum End Sub
Sub Постусловие1() Sum = 2 Do Sum = Sum + J J = J + 1 Loop While Sum < 10 Sheets("Алгоритм").Range("A21").Value = Sum End Sub
7. Основы создания интерфейса пользователя Встроенные диалоговые окна Встроенные диалоговые окна представляют собой операторы или функции языка. Диалоговые окна бывают двух видов: окна сообщений и окна ввода. 1. Окна сообщений- MsgBox Окна сообщений отображают информацию и содержит заголовок, текстовую фразу и одну или более кнопок для выбора, также могут содержать пиктограмму. Формат оператора окна сообщений: MsgBox<выражение>[, <Кнопки>] [, <Заголовок окна>] В качестве выражения может быть текст, заключенный в кавычки, число, переменная, оператор или конкатенация перечисленных элементов (объединение с помощью символа амперсант). Например, MsgBox «Пример окна сообщений» MsgBox "Пример окна сообщений", 0 + 48, "Окно сообщений" MsgBox "Содержимое ячейки составляет " & Range("B4"),, "Окно сообщений" Табл.1 Встроенные константы для определения результата
Табл.2 Встроенные константы для определения параметра кнопки
Табл.3 Пиктограммы диалогового окна
Табл.4 Кнопка по умолчанию
2. Окно ввода - InputBox Окно ввода используется, если программе надо передать какую-либо информацию от пользователя или поместить введенное значение в ячейку листа. Формат функции: Stroka=InputBox(<сообщение>[, <Заголовок>]), Где Stroka – переменная, в которую помещается введенная информация, Сообщение – текст сообщения в кавычках, Заголовок – заголовок окна в кавычках
Range("A10") = InputBox("Введите данные в ячейку А10", "Пример окна ввода") Функция InBox() может использоваться в качестве условного выражения в операторах If – Then. Через окно ввода можно заполнять столбцы и строки таблицы. Пример1 (заполнение столбца А названиями товара): Sub окно_ввода() Dim I, NS As Integer NS = 4 Sheets("товар2").Select For I = 1 To 6 Cells(NS, 2) = InputBox("Введите название товара") NS = NS + 1 Next I End Sub
Sub окно_ввода1() Dim I As Integer For I = 1 To 6 Sheets("товар2").Cells(1, 2) = InputBox("Введите название товара") Next I End Sub
Пример2 Sub окно_ввода_c_условием() ‘Начало программы Dim NS% ‘объявляются переменная NS как Целое число Dim A$ ‘объявление текстовой переменной NS = 4 ‘присваиваются начальные значения переменным A = "" Sheets("товар2").Select ‘Выбор листа Товар2 Do Until A = "Закончить" ‘Начало цикла с предусловием (выполняется пока условие имеет значение False); A = InputBox("Введите название товара, для завершения наберите Закончить") ‘значение функции InputBox помещается в значение переменной A If A = "Закончить" Then Exit Do ’Цикл прерывается Cells(NS, NC) = A ‘в ячейку А4 помещается введенное в окно ввода слово NS = NS + 1 ‘следующая строка Loop ‘конец цикла End Sub ‘конец программы
Дата добавления: 2014-01-13; Просмотров: 367; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |