Function MySum(iDiapazon As Range) 'As Variant
iResult = Application.Sum(iDiapazon)
If IsNumeric(iResult) = True Then
MySum = iResult
Else
Select Case iResult
Case CVErr(xlErrDiv0)
MySum = "#ДЕЛ/0!"
Case CVErr(xlErrNA)
MySum = "#Н/Д"
Case CVErr(xlErrName)
MySum = "#ИМЯ?"
Case CVErr(xlErrNull)
MySum = "#ПУСТО!"
Case CVErr(xlErrNum)
MySum = "#ЧИСЛО!"
Case CVErr(xlErrRef)
MySum = "#ССЫЛКА!"
Case CVErr(xlErrValue)
MySum = "#ЗНАЧ!"
End Select
End If
End Function
Использовать макрос как формулу
Можно ли как-нить обратиться к нему из ячейки таблицы, используя что то наподобие =СУММ()
=MySum(A2:A1000)
=MySum((A2:A1000;B2:B1000))
Код:
Если же Вы используете процедуру Sub и никаких изменений не допускается, то вызвать макрос можно также использовав пользовательскую функцию, однако, как в первом, так и во втором случае, никакая из используемых процедур не сможет изменять значения ячеек, имена листов и многое другое.