Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Если нужно проверить несколько условий, то оператор If …Then может стать слишком сложным. В этом случае применяется оператор выбора. Оператор выбора выполняет одну из нескольких групп инструкций в зависимости от значения выражения. Общий вид оператора:
Select Case TextExpression
Case Expression1
Группа операторов 1
Case Expression2
Группа операторов 2
….
[ Case Else
Группа операторов Else ]
End Select
Здесь: TextExpression – числовое или строковое выражение.
Expression - список из одного или нескольких, разделённых запятыми, выражений следующего вида:
1. Числовое, строковое или логическое выражение.
2. Выражение1 To Выражение2, где ключевое слово То означает диапазон значений от Выражение1 до Выражение2.
3. Is Выражение, где Is означает эквивалентность выражения TextExpressionВыражению, стоящему после Is.
В следующем примере в зависимости от величины введённого числа отображается сообщение, указывающее на величину числа или диапазон, которому оно принадлежит:
Private Sub CommandButton1_Click()
Dim iRes As Integer
iRes = InputBox("Введите целое число")
Select Case iRes
Case 1
MsgBox "1"
Case 2, 3
MsgBox "2 или 3"
Case 4 To 6
End ‘оператор End прекращает выполнение программы
Case Is > 6
MsgBox " Больше 6"
Case Is < 0
MsgBox "Отрицательное число"
End Select
End Sub
3.4. Оператор Goto
Оператор перехода на указанную строку. Его общий вид:
Goto line
где line - метка строки, представляющая собой буквенно-цифровое обозначение, удовлетворяющее правилам составления имён в VBA. Метка строки с двоеточием после неё ставится в начале нужной строки:
line:
Пример:
Sub nn()
Dim Number, MyString
Number = 1
If Number = 1 Then GoTo Line1 Else GoTo Line2
Line1:
MyString = "Number equals 1"
GoTo LastLine ' Переход на строку LastLine.
Line2: MyString = "Number equals 2"
LastLine: Debug.Print MyString
End Sub
Применение оператора Gotoсчитается плохим стилем программирования, поскольку большое количество меток и этих операторов затрудняет отладку программы и делает её трудно читаемой. Практически в любой ситуации можно обойтись без него, используя условные операторы, выбора или циклы. В старых программах на Basicкаждая строка имела метку, независимо от того есть на неё ссылка в программе или нет. Такой стиль поддерживается и в VBAдля совместимости со старыми программами.
3.5. Операторы On Error,Resume, End
Операторы OnErrorи Resumeтакже как условные операторы, оператор выбора, Gotoи циклы относятся к операторам управления ходом выполнения. Они предназначены для контроля и исправления возможных ошибок пользователя.
Оба оператора имеют 3 варианта использования. Оператор OnError:
1. OnErrorGoTo метка – в случае возникновения ошибки управление передаётся на оператор, отмеченный меткой. Этот оператор размещают обычно в самом начале программы, чтобы его действие распространялось на всё тело процедуры. Обработчик ошибок, напротив, помещают в самый конец программы, а перед ним помещают оператор ExitSub, чтобы управление не попадало в обработчик ошибок, если ошибок не было.
2. OnErrorResumeNext – в случае возникновения ошибки управление передаётся на оператор, непосредственно следующий за оператором, в котором произошла ошибка.
3. OnErrorGoTo0 – отключает обработку ошибок в данной программе.
Оператор Resume:
1. Resume [0] – возвращает управление оператору, вызвавшему ошибку.
2. ResumeNext – в случае возникновения ошибки управление передаётся на оператор, непосредственно следующий за оператором, в котором произошла ошибка.
3. Resume метка – в случае возникновения ошибки управление передаётся на оператор, отмеченный меткой.
Пример(фрагменткода):
…
On Error Goto ErrDebug
Numb = InputBox(“Сколько авторов работают в издательстве? ”)
…
операторы
…
Exit Sub
ErrDebug:
MsgBox “Неверное значение!”, vbCritical
Resume
…
Оператор End предназначен для прекращения выполнения программы. Например, оператор
If x < 0.2 Then
End
End If
прекратит выполнение программы, если x<0.2.
Задание 3.3:
При помощи оператора выбора Select Case вычислить функцию f с номером области (функции f1, f2, f3, f4 из таблицы; вариант указывается преподавателем). Номер области и значение функции вывести на экран при помощи диалогового окна вывода. Окно вывода должно иметь три кнопки: "Да", "Нет" и "Отмена". При нажатии кнопки "Да" ваша программа должно вывести на экран значение функции, возведённой в квадрат. При нажатии кнопки "Нет" ваша программа должно вывести на экран удвоенное значение функции. При нажатии "Отмена" - прекратить выполнение. Определение нажатой клавиши - при помощи оператора Select Case. Значения номера области и функции вывести на рабочий лист Excel в ячейки А1 и А2.
Дата публикования: 2015-07-22; Прочитано: 232 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!