오류 재개 시 다음: Excel VBA에서 오류 처리

  • 이 공유
Hugh West

Microsoft Excel VBA에서 오류 처리는 중요한 작업 중 하나입니다. 코더라면 완벽한 애플리케이션을 구축하기 위한 오류 처리의 중요성을 알고 있을 것입니다. 문에 실수가 있으면 여러 가지 방법으로 VBA 코드를 방해할 수 있습니다. 따라서 VBA 코드를 실행하는 동안 이러한 오류를 처리하려면 주의해야 합니다. Excel에서 VBA 코드를 사용하는 동안 직면할 수 있는 많은 런타임 오류가 있습니다. 그 중 하나를 해결하기 위해 On Error Resume Next 문을 사용합니다.

이 자습서에서는 Excel에서 On Error Resume Next 문을 사용하는 방법을 배웁니다. VBA. 이 자습서는 적절한 예와 적절한 그림으로 시작됩니다. 그러니 우리와 함께 하세요.

실습 워크북 다운로드

VBA On Error Resume Next.xlsm

Excel에서 오류 처리 VBA

Microsoft Excel VBA로 작업하는 동안 하위 절차에서 많은 오류에 직면하게 됩니다. VBA가 명령문을 실행할 수 없으면 런타임 오류가 발생합니다.

Excel은 이러한 오류를 자동으로 처리하므로 런타임 오류가 발생하면 다음과 같은 기본 오류 메시지를 표시합니다.

이제 일부 VBA 문으로 이를 다양하게 처리할 수 있습니다. 이후 섹션에서 이에 대해 설명하겠습니다.

자세히 알아보기: #REF를 수정하는 방법! Excel의 오류(6개 솔루션)

VBA의 오류 문

런타임 오류를 처리하기 위해 Excel에 On Error 문을 지시합니다. 그것은 결정한다of NAME Error in Excel (10 Examples)

💬 기억해야 할 사항

✎ On Error Resume Next 는 오류를 수정하지 않습니다. 기본적으로 오류를 무시하고 다음 문장으로 진행합니다.

엑셀은 런타임 오류를 잡아서 Err 객체에 저장합니다. On Error Resume Next 문을 사용하면 Err 개체 속성이 지워집니다.

On Error Resume Next 를 끌 수 있습니다. On Error GoTo 0 문을 추가하여 Excel의 VBA 코드에 문을 추가합니다.

결론

결론적으로 이 튜토리얼이 유용한 정보를 제공했으면 합니다. Excel VBA에서 On Error Resume Next 사용에 대한 지식. 이 모든 지침을 배우고 데이터 세트에 적용하는 것이 좋습니다. 실습 워크북을 다운로드하여 직접 해보십시오. 또한 의견 섹션에서 의견을 자유롭게 제공하십시오. 귀하의 소중한 피드백은 저희가 이와 같은 자습서를 만들도록 동기를 부여합니다.

다양한 Excel 관련 문제 및 해결 방법에 대해 Exceldemy.com 웹사이트를 확인하는 것을 잊지 마십시오.

새로운 방법을 계속 배우고 계속 성장하세요!

다음에 어떤 종류의 작업을 즉시 수행하고 싶은지. 기본적으로 이러한 종류의 오류 처리를 통해 이러한 오류를 비활성화합니다.

Excel VBA에서는 세 가지 종류의 On Error 문(구문)을 사용합니다.

  • 오류 시 GoTo line
  • 오류 시 다음 다시 시작
  • 오류 시 GoTo 0

오류를 발견하면 On Error 명령을 사용하십시오. On Error 선언을 활용하지 않으면 이러한 런타임 오류는 재앙이 될 것입니다. 오류 메시지가 표시되고 실행이 중지됩니다.

On Error 문을 사용하면 "활성화된" 오류 처리기가 켜집니다. "활성" 오류 처리기는 오류 처리 작업을 시작하는 활성화된 처리기입니다. 오류 핸들러가 관련된 상태에서 실수가 발생하면 현재 메서드의 오류 핸들러는 오류를 견딜 수 없습니다. 그런 다음 컨트롤은 호출 프로시저로 돌아갑니다.

호출 프로세스에 활성화된 오류 처리기가 있는 경우 오류를 관리하기 위해 트리거됩니다. 호출 시스템의 오류 핸들러가 그에 상응하여 관여하는 경우 제어는 활성화되었지만 비활성화된 오류 핸들러를 찾을 때까지 이전 호출 절차를 통해 반환됩니다. 유휴 활성화된 오류 처리기를 찾을 수 없는 경우 이는 발생 지점에서 오류가 치명적이라는 의미입니다.

오류 처리기가 호출 프로시저에 다시 권한을 부여할 때마다 해당 프로시저는 기존 프로시저를 발전시킵니다. 다음에서 실행이 다시 시작됩니다.오류 처리기가 어떤 절차에서 오류를 처리할 때 Resume 문에 의해 선택된 순간에 현재 절차.

VBA

의 'On Error Resume Next' 이제 On Error Resume Next 문은 VBA에 오류가 있는 코드 줄을 무시하고 다음 코드 줄로 즉시 진행하도록 지시합니다. 그런 다음 Excel VBA 코드는 오류가 포함된 줄을 건너뛰고 다음 코드 시퀀스로 이동합니다.

On Error Resume Next 문은 구현을 런타임 오류를 유발한 코드 줄을 즉시 추적하는 명령으로 다시 시작하십시오. 이 명령문은 런타임 오류가 있더라도 실행을 건너뛸 수 있도록 허용합니다. 특정 코드 라인이 오류를 생성할 수 있다고 생각되면 오류 처리 루틴을 프로시저 내의 다른 위치에 배치하지 말고 해당 루틴에 배치하십시오. On Error Resume Next 문은 코드가 다른 프로시저를 호출할 때 유휴 상태가 됩니다. 따라서 해당 루틴에서 일치하는 오류 처리가 필요한 경우 명명된 각 패턴에서 On Error Resume Next 명령을 실행해야 합니다.

건너뛸 수 있습니다 매크로의 번성 실행에 필요하지 않습니다. 그러나 잘못 사용하면 의도하지 않은 결과가 발생할 수 있으므로 해로울 수 있습니다.

기억:

The On 오류 Resume Next 문이런타임 오류를 수정하십시오. 기본적으로 런타임 오류를 생성한 명령문에서 VB 실행이 재개되는 오류는 무시합니다.

다음 코드를 살펴보십시오.

2477

우리는 5를 나누려고 했습니다. 0과 1로. 코드를 실행해 봅시다. 다음 출력이 표시됩니다.

런타임 오류가 발생합니다. 우리는 숫자를 0으로 나눌 수 없습니다. 코드를 디버그하면 다음과 같이 표시됩니다.

VB 프로그램이 오류를 발견하면 즉시 절차를 중지합니다. 다음 줄은 실행하지 않습니다.

이제 오류 문 앞에 On Error Resume Next 문을 구현해 보겠습니다.

3841

코드를 실행한 후 다음을 참조하십시오.

보시다시피 VBA는 오류를 생성하는 줄을 무시하고 즉시 다음 코드 줄로 진행합니다. 이런 식으로 On Error Resume Next 문을 사용하여 Excel VBA에서 오류를 처리할 수 있습니다.

VBA에서 'On Error Resume Next'의 예

In 다음 섹션에서는 VBA를 사용하여 Excel 워크시트에 구현할 수 있는 On Error Resume Next 문의 두 가지 예를 제공하겠습니다. 이 모든 것을 배우고 워크북에 적용하는 것이 좋습니다. Excel 지식이 확실히 향상될 것입니다.

1. 'On Error Resume Next' 구문으로 워크시트 숨기기

이제 이 예에서는 VBA 코드를 보여드리겠습니다.활성 통합 문서의 모든 워크시트를 숨깁니다.

다음 스크린샷을 살펴보세요.

여기에 4개의 워크시트가 있습니다. 다음 VBA 코드를 사용하여 모두 숨길 것입니다.

2232

다음 코드를 실행하면 다음 런타임 오류가 표시됩니다.

Excel에서 통합 문서의 모든 시트를 숨길 수 없기 때문에 이 오류가 표시됩니다. 따라서 오류를 무시해야 합니다. 이렇게 하려면 코드 줄에 On Error Resume Next 문을 구현해야 합니다.

5828

VBA 코드 실행을 완료하면 다음과 같은 출력이 표시됩니다.

결국 실행 후 오류가 표시되지 않습니다. 따라서 On Error Resume Next 문은 VBA 코드에서 정말 잘 작동했습니다.

자세히 보기: Excel의 오류 및 그 의미(15가지 오류)

2. VBA에서 'On Error Resume Next'가 있는 VLOOKUP 함수

이 예에서는 VBA 에서 VLOOKUP 함수의 예를 보여드리겠습니다. 이제 이 VBA 코드에는 On Error Resume Next 문도 포함됩니다.

다음 스크린샷을 살펴보세요.

여기 , 일부 사람들의 이름과 나이를 볼 수 있습니다. 인접한 표에서 VLOOKUP 을 사용하여 사람의 이름과 나이를 찾습니다.

다음 코드를 입력하여 이를 수행합니다.

7872

이제 매크로를 실행합니다. . 다음 오류가 표시됩니다.

이제 이것은 런타임입니다.오류. 왜 그런 일이 발생합니까? 데이터세트를 다시 살펴보세요.

보시다시피 "Aaron"과 "Emma"에 대한 데이터가 없습니다. 이것이 첫 번째 항목에 대해서만 VLOOKUP 을 실행하는 이유입니다. 그 후 실행을 중지합니다. 이제 오류를 무시하고 나머지 연령을 찾으려면 On Error Resume Next 문을 사용하십시오.

3357

VBA 코드를 실행한 후 다음 출력:

보시다시피 On Error Resume Next 명령을 적용하여 오류를 무시하고 나머지 사람을 찾았습니다. 나이. 우리의 VBA 코드는 Aaron과 Emma의 데이터를 찾지 못했습니다. 그래서 해당 값을 무시하고 Excel 워크시트의 나머지 값을 반환했습니다.

자세히 알아보기: [고정됨] Excel에서 이 워크시트에 있는 하나 이상의 수식 참조 문제 발견

Excel VBA로 'On Error Resume Next' 끄기

이제 VBA 코드의 특정 세그먼트에 대한 오류를 무시하려는 상황에 처할 수 있습니다. VBA 코드에서 On Error Resume Next 문을 사용하면 그 이후의 모든 오류를 건너뜁니다. 이제 이를 끄고 다른 세그먼트에 대한 오류 처리를 활성화하려면 On Error GoTo 0 를 사용하십시오. 오류 처리를 다시 활성화합니다.

일반 사용법:

Sub error_handling()

오류 무시

오류 시 재개 다음

// 코드 줄

To오류 처리 켜기

On Error GoTo 0

//코드 줄

End sub

다음을 살펴보세요. 다음 VBA 코드:

9108

이전에 VLOOKUP 기능에 코드를 사용했습니다. 여기에 당신을 보여주기 위해 추가 코드 덩어리가 추가되었습니다. 우리의 코드는 VLOOKUP 을 수행하는 동안 오류를 무시하지만 On Error GoTo 0 문 이후 오류 처리를 활성화합니다.

자세히 보기: Excel VBA: "오류 시 다음 다시 시작" 끄기

VBA '오류 시 GoTo'

이전에 논의한 내용 On Error 메서드를 사용하여 오류를 처리합니다. 전체 기사는 On Error Resume Next에 관한 것이었습니다. 이제 다음 섹션에서 논의할 두 가지 유형의 오류 처리도 있습니다.

1. VBA On Error GoTo 0

The On Error Goto 0 문은 코드에 오류 처리기가 없는 경우 Excel의 내장 설정입니다. 기본적으로 VBA가 On Error GoTo 0 오류를 발견하면 코드 실행을 중단하고 기존 오류 메시지 상자를 표시합니다.

On Error GoTo 0 문은 기본적으로 현재 절차에서 오류 처리를 해제합니다. 메서드가 0번 줄을 통합하더라도 오류 처리 코드의 시작 부분으로 0번 줄을 정의하지 않습니다.

다음 코드를 살펴보세요.

2119

우리는 이미 이 코드를 표시했습니다. 이 코드는 기본적으로 모든 워크시트를 숨깁니다.현재 통합 문서에서. 이제 오류를 표시하기 위해 On Error GoTo 0 가 포함된 추가 코드가 있습니다. 코드를 실행하면 다음과 같이 표시됩니다.

활성 통합 문서에 같은 이름의 시트가 있을 수 없기 때문에 이 오류가 표시됩니다.

2. VBA On Error GoTo 줄

이제 On Error GoTo 줄 을 사용하여 오류가 발견되면 Excel에서 다른 코드 세그먼트를 실행하도록 지시할 수도 있습니다. 오류를 찾은 후 Excel에 무언가를 실행하도록 지시합니다.

줄 인수는 줄 태그 또는 줄 번호입니다. 코드에서 런타임 오류가 발생하면 해당 줄로 이동하여 실행 시 오류 처리기가 활성화됩니다. 정의된 줄은 On Error 문과 같은 정확한 절차에 있어야 합니다. 그렇지 않으면 컴파일 오류가 발생합니다.

다음 코드를 살펴보십시오.

4530

이전 예제에서 코드를 보았습니다. On Error GoTo 0 를 사용했을 때 오류가 발생했습니다. 그러나 여기서는 On Error GoTo 줄 문으로 대체했습니다.

이제 코드를 실행하면 다음과 같이 표시됩니다.

보시다시피 표준 오류 대화 상자가 표시되지 않습니다. 대신 error_handler 세그먼트에서 생성한 사용자 정의 메시지 상자를 표시합니다. Excel에서 오류를 발견하면 error_handler 세그먼트로 이동하여 메시지 상자를 표시합니다.

절차에서 Exit Sub 도 사용했습니다." VLOOKUP "라는 시트가 없으면 VBA 코드가 활성 시트의 이름을 바꿉니다. 그런 다음 오류 처리기로 이동하여 메시지 상자를 표시할 필요가 없기 때문에 여기에서 실행을 완료해야 합니다.

Excel에서 VBA '오류 시'가 작동하지 않음

가끔, 아무리 노력해도 On Error 방법은 작동하지 않습니다. 이전에는 오류를 처리하기 위해 On Error 메서드를 구현했습니다. 단, On Error Resume Next 또는 On Error GoTo 0 를 사용해도 오류가 표시되는 경우가 있습니다. 수정해야 하는 코드에는 몇 가지 이유가 있을 수 있습니다. 그것을 보여드리지는 않겠습니다.

VBA ' 오류 시' 가 Excel에서 작동하지 않는 기본적인 이유는 Excel에서 "모든 오류 시 중단" 옵션을 설정하기 때문입니다.

이 문제를 해결하려면 다음 단계를 따르세요.

📌 단계

  • 먼저 키보드에서 Alt+F11 을 눌러 VBA 편집기를 엽니다.
  • 이제 도구 > 옵션.

  • 그런 다음 옵션 대화 상자에서 일반 탭을 클릭합니다. 상자.

  • 여기에서 " Break on All Errors "가 이미 선택되어 있는 것을 볼 수 있습니다. 기본적으로 오류 처리를 방지합니다.
  • 변경하려면 " Break on Unhandled Errors " 옵션을 선택하고 확인 을 클릭합니다.

VBA "On Error"가 Excel에서 작동하지 않는 문제가 해결되기를 바랍니다.

자세히 보기: 이유 및 수정

Hugh West는 업계에서 10년 이상의 경험을 가진 고도로 숙련된 Excel 트레이너이자 분석가입니다. 그는 회계 및 재무 학사 학위와 경영학 석사 학위를 보유하고 있습니다. Hugh는 교육에 대한 열정을 가지고 있으며 따라하기 쉽고 이해하기 쉬운 독특한 교수법을 개발했습니다. Excel에 대한 그의 전문 지식은 전 세계 수천 명의 학생과 전문가가 자신의 기술을 향상시키고 경력에서 탁월하도록 도왔습니다. Hugh는 자신의 블로그를 통해 자신의 지식을 전 세계와 공유하고 개인과 기업이 잠재력을 최대한 발휘할 수 있도록 무료 Excel 자습서 및 온라인 교육을 제공합니다.