Основы офисного программирования и язык VBA


Функция CvErr


При работе с процедурами стандартного модуля есть еще один способ для возврата кодов ошибок, определенных пользователем. Для этой цели можно использовать функцию CVErr, возвращающую значение типа Variant с подтипом Error, которое содержит код ошибки, указанный пользователем. В вызывающей процедуре с помощью булевой функции IsError можно проверить, является ли возвращенное значение ошибкой. В следующем примере генерируется ошибка 1999, если аргумент функции Func1 является нечисловым.

Function Func1(Number As Variant) As Variant If IsNumeric(Number) Then ' Вычисление корректного результата. Func1 = Number * Number Else 'аргумент некорректен Func1 = CVErr(1999) ' возвращает код ошибки End If End Function

Проверять корректность работы Func1 можно так.

Sub Testfunc1() Dim res As Variant, arg As Variant arg = 12 res = Func1(arg) If IsError(res) Then 'проверка ошибочности результата Debug.Print "Ошибка #: ", res, "аргумент : ", arg

Else Debug.Print "Результат : ", res End If arg = "двенадцать" res = Func1(arg) If IsError(res) Then 'проверка ошибочности результата Debug.Print "Ошибка #: ", res, "аргумент : ", arg

Else Debug.Print "Результат : ", res End If End Sub

Пример 10.6.

Приведем результаты вычислений:

Результат : 144 Ошибка #: Error 1999 аргумент : двенадцать




Начало  Назад  Вперед



Книжный магазин