범위 내 오류 존재여부 확인 :: IsErrorInArray 명령문 사용법 및 전체 코드

범위 또는 배열안의 오류 존재여부를 확인하는 IsErrorInArray 함수의 사용법 및 전체 명령문 동작원리를 알아봅니다.

홈페이지 » 범위 내 오류 존재여부 확인 :: IsErrorInArray 명령문 사용법

범위 내 오류 존재여부 확인 :: 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 함수는 지정한 범위 또는 배열 내의 오류 존재여부를 확인하는 함수입니다. 두번째 인수로 한개 또는 여러개의 오류명을 지정하여 범위 내 특정 오류의 존재여부를 확인할 수 있습니다.

범위 오류 존재 확인 IsErrorInArray 함수
IsErrorInArray 함수로 특정 오류를 지정하여 오류 존재여부를 확인할 수 있습니다.

특정오류로 입력되는 여러개의 값은 쉼표(,)로 구분하여 입력합니다. 오류값은 화면에 보이는 오류텍스트를 그대로 입력합니다. 오피스 365 기준 시트에 출력되는 오류 종류는 아래와 같습니다.엑셀에서 발생되는 오류의 원인과 해결방법에 대한 상세설명은 아래 관련포스트에서 자세히 설명드렸습니다.

오류오류설명
#DIV/0!숫자를 0으로 나눌 경우 발생합니다.
#N/A참조범위안에 찾는 값이 없을 경우 발생합니다.
#NAME?함수명을 잘못 입력할 경우 발생합니다.
#NULL!존재하지 않는 범위를 참조할 경우 발생합니다.
#NUM!올바르지 않은 숫자, 또는 엑셀에서 지원되는 숫자보다 큰 값을 입력할 경우 발생합니다.
#REF!참조되는 셀이 삭제되거나 잘라서 붙여넣기 될 경우 발생합니다.
#VALUE!옳지않은 데이터 타입을 사용할 경우 발생합니다.
#SPILL!(오피스365)동적배열함수로 출력될 분산범위에 기존 값이 있을 경우 발생합니다.

예제파일 다운로드

범위 안 오류 존재여부 확인, 동작원리 알아보기

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
명령문 동작 원리 단계별 설명
  1. 함수의 인수로 받아온 오류 목록을 쉼표(,) 기준으로 각각 분리합니다.
    ErrList = Split(ErrDescription, ",")
  2. 범위 또는 배열의 값을 하나씩 돌아가며, 데이터 형식이 오류일 경우(Type = 10)를 확인합니다.
    For Each v In vaArray
    If VarType(v) = 10 Then
    End If
    Next
  3. 특정오류가 지정되지 않았을 경우, IsErrorInArray 함수의 결과값으로 True를 반환한 뒤 명령문을 종료합니다.
            If ErrDescription = "" Then
                IsErrorInArray = True: Exit Function
            Else
  4. 특정오류가 지정되었다면, 각 오류값과 일치하는 경우에 결과값으로 True를 반환한 뒤 명령문을 종료합니다.
            For Each Err In ErrList
                If v.Text = Trim(Err) Then IsErrorInArray = True: Exit Function
            Next
  5. 지정한 범위 내 오류 가 존재하지 않을 경우 IsErrorInArray 함수의 결과값으로 False를 반환한 뒤 명령문을 종료합니다.
    IsErrorInArray = False
    End Function

링크 : MS 홈페이지 셀 오류 설명 (VBA) 바로가기 (영문)

5 6 votes
게시글평점
현재 페이지 댓글알림 신청
알림 설정
guest
6 Comments
Inline Feedbacks
View all comments
두키림
두키림
2020년 4월 3일 9:19 오후
게시글평점 :
     

이렇게 좋은 사이트 운영해 주셔서 감사!!!!

이병헌0324
이병헌0324
2020년 4월 7일 1:49 오후
게시글평점 :
     

저에겐 너무 어려운 함수네요~ 아....오빠두님 모든 강의를 몇개월에 걸쳐 독학 하고자 합니다. 잘 되겠죠? ㅎㅎ

remizz
remizz
2020년 4월 9일 7:00 오전
게시글평점 :
     

vba를 활용하여, 사무를 더 빨리 할수 있게 지금 공부중인데, 항상 도움이 많이 주셔서 정말 감사합니다.

늑대다
늑대다
2020년 4월 9일 8:09 오전
게시글평점 :
     

와 신기하다..

JMON
JMON
2020년 4월 9일 1:39 오후
게시글평점 :
     

좋은 정보 감사합니다!!!

막둥이
막둥이
2020년 4월 10일 12:34 오전
게시글평점 :
     

와우! 멋져요~

6
0
여러분의 생각을 댓글로 남겨주세요.x