[엑셀 VBA] On Error문을 이용한 에러 제어 방법

2019. 11. 19. 00:30업무 스킬/Excel VBA

728x90

 

VBA에서는 코드 실행 시 Error가 발생할 때, 제어할 수 있는 방법을 몇 가지 제공하고 있는데 그중 대표적인 방법이

[On Error] 문이다. [On Error] 즉, Error가 발생할 시, [~~] 어떻게 행동하라는 코드를 작성한데 대표적인 구문은

아래 표와 같다.

 

가장 많이 쓰는 구문은 [On Error Resume Next] 구문으로, 오류가 발생했을 때, 무시하고 다음 구문으로 넘어가라는 코드로 종종 시작 값이 없을 때나, Data가 없을 때 코드를 아예 실행하지 말고 다음 구문으로 넘어가기 위해 사용한다.

 

 이번 포스팅에서는, [On Error]문의 가장 기본인 [Goto 레이블]을 예시로 활용해보자.

 

위 엑셀에서 [RAW] 시트에 있는 DATA를 [Summary] 시트로 복사 붙여 넣는 코드를 작성해보자

 

위와 같이 간단하게 작성 할 수 있다. 중요한 점은 [On Error Goto 여기로]이다. 알아보기 쉽게 한글로 썼지만

코드의 뜻은, 에러가 발생할 때 [여기로] 레이블로 이동하라는 간단한 구문이다.

 

[여기로] 레이블에는 오류가 발생했을 때, 오류가 발생했음을 알려주고 사용자가 틀리기 쉬운 곳을 확인해보라는

MSGBOX를 띄우게 되어 있다.

 

초보때는 헷갈리는 게 레이블 만들 때는 따로 변수 선언은 필요 없고 [레이블 이름] 뒤에 [:]만 붙여주면 된다.

 

자 위 코드에서 Worsheets("RAW")를 Worsheets("DATA")로 바꿔보고 정말 [여기로] 레이블로 이동하는지 보자

 

오류가 발생하며 [여기요] 레이블로 이동하여 작성한 MSGBOX가 팝업 된 것을 확인할 수 있다.

이번 포스팅에선 기본적인 [On Error] 문을 확인했고 다음 포스팅에서 정말 자주 쓰는 [On Error Resume Next] 문을

활용해보자.

728x90