Vba: 오류 발생 시 sub를 종료하는 방법


오류가 발생하면 VBA에서 Exit Sub 문을 사용하여 하위 프로시저를 종료할 수 있습니다.

실제로 이 문을 사용하는 일반적인 방법은 다음과 같습니다.

 Sub DivideValues()

Dim i As Integer
On Error GoTo ErrorMessage

For i = 1 To 10
    Range(" C " & i) = Range(" A " & i) / Range(" B " & i)
Next i
    
Exit Sub

Error Message:
    MsgBox “ An Error OccurredExit Sub
    
End Sub

이 특정 매크로는 A1:A10 범위의 각 값을 B1:B10 범위의 해당 값으로 나누려고 시도합니다.

오류가 발생하는 경우(예: 0으로 나누려고 하는 경우) On Error GoTo 문은 VBA에 ErrorMessage 에 액세스하도록 지시합니다. 이는 사용자에게 오류가 발생했음을 알리는 메시지 상자를 생성하고 Exist Sub를 사용하여 하위 프로시저를 종료하도록 지시합니다. . 성명. 성명.

다음 예에서는 실제로 이 구문을 사용하는 방법을 보여줍니다.

예: VBA에서 오류가 발생한 경우 하위가 존재하는 방법

A 열과 B 열에 다음과 같은 값 목록이 있다고 가정합니다.

이제 A열의 각 값을 B열의 해당 값으로 나누고 그 결과를 C열에 표시하는 다음 매크로를 생성한다고 가정합니다.

 Sub DivideValues()

Dim i As Integer

For i = 1 To 10
    Range(" C " & i) = Range(" A " & i) / Range(" B " & i)
Next i
    
End Sub

이 매크로를 실행하면 다음 오류가 발생합니다.

Excel 시트의 네 번째 행에서 0으로 나누려고 했기 때문에 이 오류가 발생합니다.

이 오류가 발생할 때 단순히 하위 프로시저를 종료하려면 다음과 같이 Exit Sub 문을 사용할 수 있습니다.

 Sub DivideValues()

Dim i As Integer
On Error GoTo ErrorMessage

For i = 1 To 10
    Range(" C " & i) = Range(" A " & i) / Range(" B " & i)
Next i
    
Exit Sub

Error Message:
    MsgBox “ An Error OccurredExit Sub
    
End Sub

이 매크로를 실행하면 하위 프로시저에서 오류가 발생하기 전에 가능한 모든 분할 문제를 수행한 다음 오류가 발생했고 VBA가 하위 프로시저에 존재한다는 메시지 상자가 나타납니다.

출력 오류에 대한 VBA

참고 : 여기 에서 VBA의 Exit 문의 전체 문서를 찾을 수 있습니다.

추가 리소스

다음 자습서에서는 VBA에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

VBA를 사용하여 폴더를 만드는 방법
VBA를 사용하여 폴더를 삭제하는 방법
VBA를 사용하여 파일을 삭제하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다