Помощь в написании студенческих работ
Антистрессовый сервис

Объект Err. 
Программирование на vba в ms excel

РефератПомощь в написанииУзнать стоимостьмоей работы

Пример. Ниже приводится полный текст процедуры (листинг 7.2) с использованием встроенных диалоговых окон и обработчика ошибок. Данная процедура предлагает ввести число и находит результат деления величины 100 на это число. Если пользователь введет некорректное число, то управление в программе будет передано оператору с меткой NumErr. В данной процедуре также использовано свойство Number объекта… Читать ещё >

Объект Err. Программирование на vba в ms excel (реферат, курсовая, диплом, контрольная)

Обработчик ошибок обычно включает объект Err, который содержит информацию об ошибках выполнения. В момент возникновения ошибки заполняются свойства объекта Err, так что он содержит всю информацию о последней возникшей ошибке.

Свойства объекта Err:

  • • Number возвращает код ошибки (целое число);
  • • Source содержит имя текущего приложения, которое сгенерировало ошибку. Например, если пользователь вызывает Microsoft Excel и он генерирует ошибку, то Number будет содержать код ошибки, a Source устанавливается равным ExcelApplication;
  • • Description возвращает строковое выражение, содержащее текст сообщения об ошибке;
  • • HelpFile содержит полное имя файла справки VBA;
  • • HelpContext — контекстный идентификатор файла справки VBA, соответствующий ошибке с кодом, указанным в свойстве Number.

Некоторые значения часто возникающих ошибок выполнения (значения свойства Number) приведены в табл. 7.1. Более полный список кодов ошибок можно найти в приложении источника[1].

Таблица 7.1

Коды наиболее часто встречающихся ошибок.

Код.

Сообщение.

Нет ошибок.

Недопустимый вызов процедуры или аргумент.

Переполнение.

Не хватает памяти.

Индекс выходит за пределы допустимого диапазона.

Массив имеет фиксированный размер или временно заблокирован.

Деление на ноль.

Несоответствие типа.

Вне области строки.

Невозможно выполнить запрошенную операцию.

Произошло прерывание, вызванное пользователем.

Вне области стека.

Sub или Function не определена.

Внутренняя ошибка.

Неправильное имя файла или идентификатор

Файл нс найден.

Неверный режим работы с файлом.

Файл уже открыт.

Ошибка ввода-вывода.

Файл уже существует.

Переполнение диска.

Путь не найден.

Цикл For не инициализирован.

Недопустимое использование Null.

Неверное значение свойства.

Неверный индекс массива свойств.

Свойство не найдено.

Свойство или метод не найдены.

Окончание табл. 7.1

Код.

Сообщение.

Необходим объект. Возникает, если текст после точки не распознается как объект.

Объект не поддерживает это свойство или метод.

Обязательный аргумент.

Неправильное число аргументов или неверное присвоение свойства.

Методы объекта Err. Основной метод объекта Err — Clear. Очищает все значения свойств объекта Err (например, сбрасывает значение Number в ноль). Метод Clear используется для явной очистки значений свойств объекта Err после завершения обработки ошибки. Это необходимо, например, при отложенной обработке ошибки, которая задается инструкцией On Error Resume Next.

Метод Raise устанавливает ошибку. Этот метод используется для передачи ошибки обратно в вызывающую процедуру или тестирования кода обработки ошибок. Например: Err. Raise 53 'Установить ошибку

" Файл не найден" .

Рассмотрим на конкретном примере, как применяются инструкция On Error и объект Err при создании обработчика ошибок.

Пример. Ниже приводится полный текст процедуры (листинг 7.2) с использованием встроенных диалоговых окон[2] и обработчика ошибок. Данная процедура предлагает ввести число и находит результат деления величины 100 на это число. Если пользователь введет некорректное число, то управление в программе будет передано оператору с меткой NumErr. В данной процедуре также использовано свойство Number объекта Err, которое позволяет определить тип ошибки. Например, при вводе нуля возникает ситуация «деление на ноль», при вводе слишком большого числа (в данном случае больше 32 767) происходит переполнение и т. д. Значения соответствующих кодов ошибок приведены в табл. 7.1. В этом листинге процедуры при возникновении ошибки выводится соответствующее диагностическое сообщение, и выполнение процедуры корректно завершается.

Листинг 7.2.

'Результат деления

Private Sub division100().

Dim st as string Dim x As Integer Dim у As Single.

On Error GoTo NumErr.

st = InputBox («Введите целое число») x = Clnt (st) y=100 / x.

MsgBox «Результат деления 100 на «+ Str (x) &_.

" равен «+ Str (y).

Exit Sub.

NumErr:

If Err. Number = 11 then MsgBox «Деление на ноль!», 16 Elself Err. Number = 6 then.

MsgBox «Введено слишком большое число!», 16 Else.

MsgBox «Неверные данные!», 16 End If End Sub.

Из приведенного примера очевидно, что оператор On Error и системный объект Err позволяют создать развернутую процедуру обработки ошибок. Для этого необходимо создать одну универсальную процедуру обработки ошибок с определенной меткой. Тогда при любой ошибке в разных местах программы переход будет происходить в одну точку, где и производится обработка ошибки любого вида.

  • [1] Уокенбах Дж. Профессиональное программирование на VBA в MS Excel 2003.
  • [2] Кондрашов 10. U., Лебедев В. М., Мещерякова Н. A. Visual Basic 6.0. Описание языка. Основные элементы управления.
Показать весь текст
Заполнить форму текущей работой