Excel VBA On Error Goto 0
VBA On Error GoTo 0 은 프로 시저에서 활성화 된 오류 처리기를 비활성화하는 데 사용되는 오류 처리기 문입니다. 이를“Error Handler Disabler”라고합니다.
모든 프로그래밍 언어의 오류 처리는 모든 코더가 이해해야하는 마스터 클래스입니다. VBA 프로그래밍 언어도 있으며이 프로그래밍 언어로 된 오류 처리 기술도 있습니다. "On Error Resume Next"는 오류 처리기를 활성화하고 "On Error GoTo 0"은 활성화 된 오류 처리기를 비활성화합니다.
"On Error Resume Next"및 "On Error GoTo 0"은 모두 코드의 효율성을 위해 함께 사용해야하는 쌍입니다. 오류를 처리하려면 "On Error Resume Next"문으로 시작하고이 오류 처리기를 끝내려면 "On Error GoTo 0"문을 사용해야합니다.
이 문 사이에 작성된 모든 줄 코드는 절차에서 발생한 모든 종류의 오류를 무시합니다.
On Error GoTo 0 문을 사용하는 방법?
이 VBA On Error Goto 0 Excel 템플릿은 여기에서 다운로드 할 수 있습니다 – VBA On Error Goto 0 Excel 템플릿예를 들어 아래 코드를보십시오.
암호:
Sub On_ErrorExample1 () Worksheets ( "Sheet1"). Select Range ( "A1"). Value = 100 Worksheets ( "Sheet2"). Select Range ( "A1"). Value = 100 End Sub
위 코드는 먼저“Sheet1”이라는 워크 시트를 선택하고 A1 셀에 값 100을 삽입합니다.
암호:
Worksheets ( "Sheet1"). Select Range ( "A1"). Value = 100
그런 다음 "Sheet2"라는 워크 시트를 선택하고 동일한 값을 삽입합니다.
암호:
Worksheets ( "Sheet2"). Select Range ( "A1"). Value = 100
이제 통합 문서에 시트가 있습니다.
"Sheet1"& "Sheet2"라는 시트가 없습니다. 코드를 실행하면 아래와 같은 오류가 발생합니다.
“Sheet1”이라는 이름의 시트가 없기 때문에“Subscript out of range”오류가 발생했습니다. 이 오류를 처리하기 위해 매크로 맨 위에 "On Error Resume Next"라는 오류 처리기 문을 추가합니다.
암호:
Sub On_ErrorExample1 () 오류시 다음 워크 시트 재개 ( "Sheet1"). Select Range ( "A1"). Value = 100 Worksheets ( "Sheet2"). Select Range ( "A1"). Value = 100 End Sub
이제 코드를 실행하고 어떤 일이 발생하는지 확인하십시오.
On Error Resume Next 가 활성화되어 있기 때문에 오류 메시지를 제공하지 않습니다 .
워크 시트“Sheet1”을 사용할 수없는 경우 오류를 무시해야하지만“Sheet2”라는 워크 시트가없는 경우 알려야하는 시나리오를 상상해보십시오.
On Error Resume Next 를 맨 위에 추가했기 때문에 오류 를 처리하기 시작했지만 동시에이 오류를 무시할 줄 수를 지정해야합니다.
이 예에서는 첫 번째 워크 시트에 대한 오류 만 무시하면되지만 두 번째 시트 이후에는 워크 시트“Sheet2”가없는 경우 오류가 발생해야합니다. 따라서 첫 번째 워크 시트 코드 뒤에 On Error GoTo 0 오류 비활성화 줄을 추가합니다.
암호:
Sub On_ErrorExample1 () 오류시 다음 워크 시트 재개 ( "Sheet1"). Select Range ( "A1"). Value = 100 오류시 0 Worksheets ( "Sheet2"). Select Range ( "A1"). Value = 100 End Sub
이제 코드를 한 줄씩 실행하여 F8 키를 눌러 영향을 확인합니다.
이제 F8 키를 누르면 코드 실행이 다음 줄로 점프하고 활성 줄 작업이 실행됩니다. 이제 활성 라인 (노란색 라인)은 "On Error Resume Next"오류 핸들러이며 오류 핸들러가 활성화됩니다.
이제 오류가 발생하면 오류 처리기가 " On Error GoTo 0 "문을 비활성화 할 때까지 무시됩니다 .
이전 시도에서 오류가 발생했지만 F8 키를 한 번 더 누르면 마술이 보입니다.
어떤 종류의 오류도주지 않고 선택할 워크 시트“Sheet2”가 없더라도 코드 실행을 재개했습니다. 이제 F8을 다시 누릅니다.
Sheet1이 없기 때문에 A1 셀에 500으로 값을 삽입 할 수 없지만 워크 시트가 활성화 된 A1 셀에 500 값을 삽입합니다. 코드를 실행할 때의 활성 시트는 "Sheet3"이므로 값 100이 A1 셀에 삽입됩니다.
이제 활성 코드 줄은 " On Error GoTo 0 "입니다. F8 키를 누르면이 줄 작업이 실행됩니다.
“On Error GoTo 0”이 실행 되었기 때문에 오류 처리 프로세스를 중지하고 오류가 발생하면 다시 표시하기 시작합니다. F8 키를 누르고 오류를 확인합니다.
On Error GoTo 0이없는 이전의 경우에도이 오류를 무시했지만 오류 처리기 비활성화기를 추가했기 때문에 오류를 다시 표시하기 시작했습니다.
여기서 기억해야 할 사항
- On Error Resume Next 및 On Error GoTo 0은 모두 " Error Handler Enabler "및 " Error Handler Disabler " 로 사용해야 합니다.
- 이 두 명령문 사이의 모든 코드 행에서 오류가 발생하면 무시됩니다.
- On Error GoTo 0 문이있는 경우 하위 프로 시저 종료 후 오류 처리기가 비활성화됩니다.