vba함수는 엑셀의 특성으로 기본적으로 'As Varient'로 처리 되기 때문에 숫자 vs 글자 구분을 못할 때가 가끔 있음.
공학수식 관련에는 더욱 민감한데, vba함수의 변수에 잘못된 Type으로 입력하면 Error No 13이 발생함
이럴 때를 위해 Err No. 13 (Type Mismatch) 은 따로 처리하는 것이 좋다.
원하지 않는 값을 입력하면 무시를 하고 넘어 갈 수도 있지만, 계산항목에는 잘못된 값이 들어가 있음에도 인지를 못할 때가 있다.
Public Function PropertyTP(ByVal output As String, ByVal Name1 As String)
On Error GoTo ErrorHandler
Dim Property_temp As Double
Property_temp = ProP_private(output, Name1)
If Abs(Property_temp) > 1E+30 Then
'Return error message
PropertyTP = get_error_message()
Else
PropertyTP = Property_temp
End If
Exit Function
ErrorHandler:
' 잘못된 문구가 들어오면 에러발생
If Err = 13 Then
Exit Function
End If
MsgBox "The most recent error number is " & Err & ". Its message text is: " & Error(Err)
Exit Function
End Function
_
반응형