[VBA] 에러 핸들링

2021. 6. 3. 09:55VBA

Function 함수이름()

    On Error GoTo ErrorHandling

1 에러 나면 넘기고 싶은 부분

2  코딩(왼쪽 숫자는 Error시 알 수 있게 넘버링 한 것)


ErrorHandling:
    
        If Err.Number <> 0 Then
       
          함수이름= Err.Source & "_" & Err.Description & " ErrorLine : (" & Erl & ") / " & Now
    		'이거는 에러를 어떻게 뱉을지에 따라 수정하면 됨
        Else
           
        End If
    
    On Error GoTo 0
    

End Function

 

RPA를 하다보면 VBA 코드를 쓸 일이 많아진다.

문제는 Uipath로 invoke VBA를 사용하면 매크로 에러가 발생 하였을 때

Uipath가 그상태로 멈춰버린다는 것이다.

엑셀에서 Alert 창이 뜬 상태로 작업을 중단하지 않고 계속,, Pending 된다

그러면 실제로 엑셀을 꺼주거나 확인 버튼을 눌러주거나 해야 오류로 뱉기 때문에........

아주 문제가 많은 부분이었다. 실제로 엑셀 오류때문에 저녁부터 모든 작업이 밀린 적이 있었다...

그럴땐 새벽에 택시타고오셔서 처리해주시기도 했다...

 

아무튼 VBA Error 핸들링 부분 때문에 애먹고 있는데 이번에 새로오신 VBA 고수 선임님께

코드를 전수 받았다. 이렇게 하니 매크로 오류가 나도 에러로 떨어져 Uipath에서 에러로 받을 수 있었다.(Output 변수는 Object로)