Функция CVErr

Возвращает Variant подтипа Error, содержащего номер ошибки, задаваемый пользователем.

Синтаксис

CVErr(errornumber)

Обязательным аргументом errornumber является любой допустимый номер ошибки.

Замечания

Функция CVErr применяется для создания определяемых пользователем ошибок в создаваемых пользователем процедурах. Например, если вы создаете функцию, которая принимает несколько аргументов и обычно возвращает строку, можно заставить функцию оценивать входные аргументы, чтобы гарантировать, что они находятся в допустимом диапазоне. Если они не находятся в допустимом диапазоне, скорее всего, функция не вернет ожидаемый результат. В таком случае функция CVErr позволяет возвращать номер ошибки, сообщающий о действии, которое необходимо предпринять.

Обратите внимание, что неявное преобразование Error не допускается. Например, невозможно напрямую присвоить возвращаемое значение функции CVErr для переменной, которая не равна Variant. Однако можно выполнить явное преобразование (с помощью CInt, CDbl и т. д.) значения, возвращаемого CVErr , и присвоить его переменной соответствующего типа данных.

Пример

В этом примере функция CVErr используется, чтобы вернуть элемент Variant, у которого VarType равен vbError (10). Определяемая пользователем функция CalculateDouble возвращает ошибку, если переданный ей аргумент не является числом. Используйте CVErr для возврата определяемых пользователем ошибок из определяемых пользователем процедур или для отсрочки обработки ошибки во время выполнения. Используйте функцию IsError , чтобы проверить, представляет ли значение ошибку.

' Call CalculateDouble with an error-producing argument.
Sub Test()
    Debug.Print CalculateDouble("345.45robert")
End Sub
' Define CalculateDouble Function procedure.
Function CalculateDouble(Number)
    If IsNumeric(Number) Then
        CalculateDouble = Number * 2    ' Return result.
    Else
        CalculateDouble = CVErr(2001)    ' Return a user-defined error 
    End If    ' number.
End Function

См. также

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.