Для того, чтобы Ваша функция, при необходимости, могла возвращать нужное значение ошибки, следует использовать функцию CVErr(). К примеру, следующая функция =MyFunction(1000;0) будет возвращать #ДЕЛ/0! , в случае, когда делитель равен 0.
Function MyFunction(A#, B#) 'As Variant
If B <> 0 Then
MyFunction = A / B ' A \ B
Else
MyFunction = CVErr(xlErrDiv0)
End If
End Function
Вполне естественно, что кроме деления на нуль, Вам могут понадобиться и другие ошибки, поэтому перечень прилагается:
Константа Значение Ошибка
xlErrDiv0 2007 (&H7D7) #ДЕЛ/0!
xlErrNA 2042 (&H7FA) #Н/Д
xlErrName 2029 (&H7ED) #ИМЯ?
xlErrNull 2000 (&H7D0) #ПУСТО!
xlErrNum 2036 (&H7F4) #ЧИСЛО!
xlErrRef 2023 (&H7E7) #ССЫЛКА!
xlErrValue 2015 (&H7DF) #ЗНАЧ!