엑셀/엑셀 VBA

엑셀 VBA 오류 정보(번호 및 이유) 확인하는 방법

90년대생 직장인 2023. 1. 30. 23:19
반응형

엑셀 VBA 실행할 때 발생할 수 있는 오류의 번호 및 설명을 확인하는 방법을 소개합니다.

 


<본문이동링크>

1. 코드 기본 설명

2. Number 활용

3. Description 활용

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

▶ 코드 실행 결과 

728x90

4. 참고) On Error Resume Next 설명

▶ 보통 VBA 실행 중 오류가 발생하면 해당 명령문에서 중단되나, On Error Resume Next코드를 선언하면 이후 오류가 발생하더라도 해당 명령문을 무시하고 다음 명령문을 실행함

반응형