엑셀 VBA 실행할 때 발생할 수 있는 오류의 번호 및 설명을 확인하는 방법을 소개합니다.
<본문이동링크>
4. 참고) On Error Resume Next 설명
<참고할만한 글>
[엑셀/엑셀 VBA] - 엑셀 VBA 오류 무시하는 방법
[엑셀/엑셀 VBA] - 엑셀 VBA 오류 제어하는 방법(On Error GoTo)
1. 코드 기본 설명
- Err개체에 Number 메서드와 Description 속성을 활용하면 오류번호와 오류사유를 확인할 수 있습니다.
- Number 메서드는 VBA 실행 중 발생한 오류 번호를 반환합니다.
- Description 속성은 VBA 실행 중 발생한 오류의 사유(설명)를 반환합니다.
2. Number 활용
▶ 오류를 발생시킬만한 두가지 예시에 대해 코드를 작성 후 실행하겠습니다.
- 오류예시 1) 계산이 불가능한 정수를 "0"으로 나누는 경우
- 오류예시 2) integer 변수에 적합하지 않은 text값을 넣는 경우
▶ 두가지 오류를 발생시키고 오류번호를 확인하는 코드
- 편의상 Debug.Print를 활용하여 실행창에서 오류번호를 확인합니다.
필요시 Msgbox를 활용하셔도 상관없습니다.
Sub Error_Numbers()
Dim i As Integer
'오류가 발생하더라도 해당 명령문을 무시하고 다음 명령문 실행
On Error Resume Next
'오류예시1) 계산이 불가능한 0으로 나눔
i = 100 / 0
Debug.Print "오류번호 : " & Err.Number
'오류예시2) integer 변수에 "문자"를 입력함
i = "text"
Debug.Print "오류번호 : " & Err.Number
End Sub
▶ 코드 실행 결과
3. Description 활용
▶ 2번에서 확인한 오류번호와 함께 각각의 오류 사유(설명)를 확인해 보겠습니다.
- 오류예시 1) 계산이 불가능한 정수를 "0"으로 나누는 경우
- 오류예시 2) integer 변수에 적합하지 않은 text값을 넣는 경우
▶ 두 가지 오류를 발생시키고 오류번호를 확인하는 코드
- 편의상 Debug.Print를 활용하여 실행창에서 오류번호와 오류사유(설명)를 확인합니다.
필요시 Msgbox를 활용하셔도 상관없습니다.
Sub Error_Description()
Dim i As Integer
'오류가 발생하더라도 해당 명령문을 무시하고 다음 명령문 실행
On Error Resume Next
'오류예시1) 계산이 불가능한 0으로 나눔
i = 100 / 0
Debug.Print "오류번호 : " & Err.Number
Debug.Print "오류사유 : " & Err.Description
'오류예시2) integer 변수에 "문자"를 입력함
i = "text"
Debug.Print "오류번호 : " & Err.Number
Debug.Print "오류사유 : " & Err.Description
End Sub
▶ 코드 실행 결과
4. 참고) On Error Resume Next 설명
▶ 보통 VBA 실행 중 오류가 발생하면 해당 명령문에서 중단되나, On Error Resume Next코드를 선언하면 이후 오류가 발생하더라도 해당 명령문을 무시하고 다음 명령문을 실행함
'엑셀 > 엑셀 VBA' 카테고리의 다른 글
엑셀 VBA 오류 제어하는 방법(On Error GoTo) (0) | 2023.01.31 |
---|---|
엑셀 VBA 오류 무시하는 방법 (0) | 2023.01.30 |
엑셀 VBA 다중범위(다중셀) 선택하는 방법 (0) | 2023.01.17 |
엑셀 VBA 셀 선택하는 3가지 방법 (0) | 2023.01.17 |
엑셀 VBA Sort 정렬하기(오름차순, 내림차순) (0) | 2022.12.06 |