Лекция_7_2013.ppt
- Количество слайдов: 23
Использование символов типа Выражения Dim n As Integer и n% - равнозначны. Символы типа определены также для: Currency - (@); Double - (#); Long - (&); Single - (!); String - ($);
Разновидности циклов For. . . Next (For—Next и For Each—Next) Do. . . Loop (Do While. . . Loop и Do Until. . . Loop),
Конструкция цикла For…Next For < счётчик >=< начало > To < конец > [ Step <шаг >] <блок операторов> Next[< счётчик_цикла]
Циклы с обратным отсчетом For int. I = 6 To 0 Step -1 <Блок операторов> Next int. I
Использование для счетчика цикла переменных границ For int. I = n 1 To n 2 Step n 3 <Блок операторов> Next
Конструкция цикла For…Next с использованием Exit For < счётчик >=< начало > To < конец > [ Step <шаг >] <блок операторов> Exit For Next[< счётчик_цикла]
Блок операторов реализующих выход из цикла For i = 1 To 9 If M_Arr(i) = 0 Then found = True Exit For End If Next i Msg. Box " Индекс элемента = " & i
Пример цикла For…Next • Sub Test 1() 'вычисление квадрата чисел от 1 до 10 с шагом 2 For x=1 to 10 step 2 x 1=x^2 Debug. Print x, x 1 'Вывод значений в окно отладки Next x End sub
Использование цикла For…Next Sub Print. Week 2(dtm. Start As Date) Dim int. I As Integer For int. I = 0 To 6 Debug. Print Date. Add("d", int. I, dtm. Start) Next int. I End Sub
Использование для счетчика цикла переменных границ Sub Print. Week 4(dtm. Start As Date, n 1%, n 2%, n 3%) Dim int. I % For int. I = n 1 To n 2 Step n 3 Debug. Print Date. Add("d", int. I, dtm. Start) Next End Sub
Пример (описание) Option Explicit Dim M() As Integer Dim n_gr As Integer Dim v_gr As Integer Dim n As Integer, b As Integer Dim i As Integer, j As Integer, N_Row As Integer
Ввод исходных данных Public Sub Pr_Array() n = Input. Box(“Размерность массива") n_gr = Input. Box("Нижняя граница числового диапазона") v_gr = Input. Box("Верхняя граница числового диапазона") ‘Формирование массива Re. Dim M(1 To n) For i = 1 To n M(i) = CInt((v_gr - n_gr + 1) * Rnd + n_gr) Next i End Sub
Сортировка массива (вложенный цикл) Public Sub Pr_sort() For i = 1 To (n - 1) For j = i + 1 To n If M(j) > M(i) Then b = M(i) = M(j) = b End If Next j Next i End Sub
Вывод результатов на лист Excel Public Sub Вывод() For i = 1 To n Cells(N_Row, i + 1). Value = M(i) Next i End Sub
Головная процедура Public Sub Main() Pr_Array ‘Ввод исходных данных N_Row = 2 Вывод ‘Исходный массив Pr_sort ‘Сортировка массива N_Row = 3 Вывод ‘Сортированный массив End Sub
Запуск процедуры Запуск реализуем в окне Immediate, используя конструкцию Print. Week 4 Now, 10, 0, -2 Now- текущая дата.
Вложенные циклы (1) • Public Sub Largest. Smallest. Values() • Рассмотреть на примере сортировки Dim row As Integer, col As Integer Dim largest_value, smallest_value Dim r As Range Dim s As String '
Организация цикла по коллекции объектов For Each <элемент > In <множество > Sub Test 2() For Each ws _ In Active. Workbook. Work. Sheets Debug. Print ws. Name Next End sub
Оператор Goto Public Sub Pr_Go_To() Dim val% Repet: val = Input. Box("Введите четное число") If val Mod 2 <> 0 Then Go. To Msg. Box "Thank You“ Not. Even Go. To Finish Not. Even: Msg. Box "Это не четное число повторите ввод" Go. To Repet Finish: Msg. Box "Задание выполнено" End Sub
Обработка ошибок Function Pr_23(intm As Integer) As Integer ‘ Умножение аргумента на 10 и ‘возвращение результата On Error Resume Next Pr_23 = intm * 10 End Function
Обработка ошибок Public Prc() ‘ Объявление переменных On Error Go. To Метка ‘ Основная процедура Метка: ‘Код обработки ошибок End Sub
Объект Err - Является частью VBA и всегда доступен в программах. - Содержит информацию о текущей ошибке Имеет следующие основные свойства и методы: Number. Номер последней ошибки или 0, если ошибок не было. Description. Описание ошибки, или пустая строка. Значения свойств объекта Err сбрасываются при выходе из процедуры
Обработка ошибок Function Pr_24(intm As Integer) As Integer On Error Go. To H_Err Pr_24 = intm * 10 Msg. Box “Yes" E_H: Exit Function H_Err: Msg. Box “Переполнение" Resume E_H End Function