vba:: Error Handler No Err 13 by type mismatch

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

 

 

 

 

 

 

 

 

_

반응형