범위 내 오류 존재여부 확인 :: IsErrorInArray 명령문 사용법
IsErrorInArray 함수 목차 바로가기
함수 구문
= IsErrorInArray ( 범위, [오류종류] )
인수 설명
인수 | 설명 |
범위 | 오류 존재여부를 확인할 범위 또는 배열입니다. |
오류종류 [선택인수] |
오류 종류를 지정하여, 특정오류의 존재여부만 확인할 수도 있습니다. 여러개의 값 입력시, 쉼표(,)로 구분하여 입력합니다. |
함수 사용 예제
- A1~A4 = { 1, 2, #N/A!, 4 }
- = IsErrorInArray ( A1:A4 )
'// True 를 반환합니다. - = IsErrorInArray ( A1:A4 , "#DIV/0!" )
'// False 를 반환합니다. - = IsErrorInArray ( A1:A4 , "#N/A!" )
'// True 를 반환합니다.
설명
IsErrorInArray 함수는 지정한 범위 또는 배열 내의 오류 존재여부를 확인하는 함수입니다. 두번째 인수로 한개 또는 여러개의 오류명을 지정하여 범위 내 특정 오류의 존재여부를 확인할 수 있습니다.

특정오류로 입력되는 여러개의 값은 쉼표(,)로 구분하여 입력합니다. 오류값은 화면에 보이는 오류텍스트를 그대로 입력합니다. 오피스 365 기준 시트에 출력되는 오류 종류는 아래와 같습니다.엑셀에서 발생되는 오류의 원인과 해결방법에 대한 상세설명은 아래 관련포스트에서 자세히 설명드렸습니다.
오류 | 오류설명 |
#DIV/0! | 숫자를 0으로 나눌 경우 발생합니다. |
#N/A | 참조범위안에 찾는 값이 없을 경우 발생합니다. |
#NAME? | 함수명을 잘못 입력할 경우 발생합니다. |
#NULL! | 존재하지 않는 범위를 참조할 경우 발생합니다. |
#NUM! | 올바르지 않은 숫자, 또는 엑셀에서 지원되는 숫자보다 큰 값을 입력할 경우 발생합니다. |
#REF! | 참조되는 셀이 삭제되거나 잘라서 붙여넣기 될 경우 발생합니다. |
#VALUE! | 옳지않은 데이터 타입을 사용할 경우 발생합니다. |
#SPILL!(오피스365) | 동적배열함수로 출력될 분산범위에 기존 값이 있을 경우 발생합니다. |
예제파일 다운로드
오빠두엑셀의 강의 예제파일은 여러분을 위해 자유롭게 제공하고 있습니다.
- [엑셀VBA함수] IsErrorInArray :: 범위 내 오류 존재여부 확인예제파일
범위 안 오류 존재여부 확인, 동작원리 알아보기
IsErrorInArray 명령문 전체 코드
'############################################################### '오빠두엑셀 VBA 사용자지정함수 (https://www.oppadu.com) '■ IsErrorInArray 함수 '■ 지정한 배열 또는 범위 내 오류 존재여부를 확인합니다. '■ 인수 설명 '_____________vaArray : 오류 존재여부를 확인할 범위 또는 배열입니다. '_____________ErrDescription : 특정오류 존재여부만 확인할 경우, 쉼표(,) 로 구분하여 입력합니다. '############################################################### Function IsErrorInArray(vaArray As Variant, Optional ErrDescription As String = "") As Boolean Dim v As Variant Dim ErrList As Variant: Dim Err As Variant ErrList = Split(ErrDescription, ",") For Each v In vaArray If VarType(v) = 10 Then If ErrDescription = "" Then IsErrorInArray = True: Exit Function Else For Each Err In ErrList If v.Text = Trim(Err) Then IsErrorInArray = True: Exit Function Next End If End If Next IsErrorInArray = False End Function
명령문 동작 원리 단계별 설명
- 함수의 인수로 받아온 오류 목록을 쉼표(,) 기준으로 각각 분리합니다.
ErrList = Split(ErrDescription, ",")
- 범위 또는 배열의 값을 하나씩 돌아가며, 데이터 형식이 오류일 경우(Type = 10)를 확인합니다.
For Each v In vaArray If VarType(v) = 10 Then End If Next
- 특정오류가 지정되지 않았을 경우, IsErrorInArray 함수의 결과값으로 True를 반환한 뒤 명령문을 종료합니다.
If ErrDescription = "" Then IsErrorInArray = True: Exit Function Else
- 특정오류가 지정되었다면, 각 오류값과 일치하는 경우에 결과값으로 True를 반환한 뒤 명령문을 종료합니다.
For Each Err In ErrList If v.Text = Trim(Err) Then IsErrorInArray = True: Exit Function Next
- 지정한 범위 내 오류 가 존재하지 않을 경우 IsErrorInArray 함수의 결과값으로 False를 반환한 뒤 명령문을 종료합니다.
IsErrorInArray = False End Function
- 함수의 인수로 받아온 오류 목록을 쉼표(,) 기준으로 각각 분리합니다.