차례:
비디오: 엑셀 매크로 VBA 각종 런타임 오류(Runtime Error) 발생 시 대처요령 2024
Excel 2016에서 발생할 수있는 모든 오류를 식별하고 처리하는 방법은 무엇입니까? 종종, 당신은 할 수 없습니다. 다행히 VBA는 이러한 성가신 오류를 다루는 또 다른 방법을 제공합니다.
EnterSquareRoot 프로 시저 재검토
다음 코드를 검사하십시오. 루틴은 다목적 On Error 문을 사용하여 모든 오류를 트랩 한 다음 InputBox가 취소되었는지 확인합니다.
Sub EnterSquareRoot5 () Dim Num As Variant Dim Msg As String 오류 처리 설정 Error On BadEntry '값 프롬프트 Num = InputBox ("값 입력") 취소 된 경우 Num = ""Then Exit Sub '제곱근 ActiveCell을 삽입하십시오. 값 = Sqr (Num) Exit Sub BadEntry: Msg = "오류가 발생했습니다. "& vbNewLine & vbNewLine Msg = Msg &"범위가 선택되어 있는지 확인하십시오. "Msg = Msg &"시트가 보호되어 있지 않습니다. "Msg = Msg &"이고 음수가 아닌 값을 입력하십시오. "MsgBox 메시지, vbCritical End Sub
이 루틴은 모든 유형의 런타임 오류를 트랩합니다. 런타임 오류를 트래핑 한 후 개정 된 EnterSquareRoot 프로시 저는이 메시지 상자를 표시합니다. 이 메시지 상자는 오류의 원인을 설명합니다.
오류시 작동하지 않습니까?
On Error 문이 보급 된대로 작동하지 않는 경우 설정 중 하나를 변경해야합니다.
-
VBE를 활성화합니다.
-
도구 → 옵션 명령을 선택하십시오.
-
옵션 대화 상자의 일반 탭을 클릭하십시오.
-
모든 오류 중단 옵션의 선택이 해제되어 있는지 확인하십시오.
이 설정을 선택하면 Excel에서 On Error 문을 본질적으로 무시합니다. 일반적으로 오류 트래핑 옵션을 처리되지 않은 오류에서 중단으로 설정해야합니다.
On Error 문 정보
VBA 코드에서 On Error 문을 사용하면 Excel의 기본 제공 오류 처리를 건너 뛰고 자체 오류 처리 코드를 사용할 수 있습니다. 이전 예에서 런타임 오류로 인해 매크로 실행이 BadEntry라는 문으로 이동합니다. 결과적으로 Excel의 친숙하지 않은 오류 메시지를 피할 수 있으며 사용자에게 자신의 메시지를 표시 할 수 있습니다.
이 예제에서는 BadEntry 레이블 바로 앞에 Exit Sub 문을 사용합니다. 이 문은 오류가 발생하지 않는 경우 오류 처리 코드를 실행하지 않으므로 필요합니다.