엑셀 VBA에서 오류 처리
아래 우리는 엑셀 VBA에서 두 개의 프로그램을 볼 것이다. 하나 개의 프로그램은 단순히 오류를 무시합니다. 다른 프로그램에 오류가 타격에 지정된 줄에서 실행을 계속한다.
상황 :
두 프로그램은 숫자의 제곱근을 계산합니다.
제곱근 1은 ‘제곱근 1’명령 단추에 다음 코드 줄을 추가합니다.
-
먼저, 우리는이 범위 객체를 선언합니다. 우리는 범위가 RNG 세포 개체를 호출합니다.
Dim rng As Range, cell As Range
-
우리는 선택 범위 Range 개체의 RNG를 초기화합니다.
Set rng = Selection
-
우리는 (이 범위는 임의의 크기 일 수있다) 무작위로 선택된 범위에서 각 셀의 제곱근을 계산합니다. 엑셀 VBA에서는 이에 대한 각 다음 루프의 경우를 사용할 수 있습니다. 다음 코드 줄을 추가합니다
For Each cell In rng Next cell
참고 : RNG 세포가 무작위로 여기에 선택되어, 당신은 어떤 이름을 사용할 수 있습니다.
코드의 나머지 부분에서이 이름을 참조해야합니다.
루프에 다음 코드 줄을 추가하십시오.
On Error Resume Next
-
다음으로, 우리는 값의 제곱근을 계산합니다. 엑셀 VBA에서, 우리는이에 대한 SQR 기능을 사용할 수 있습니다. 루프에 다음 코드 줄을 추가합니다.
cell.Value = Sqr(cell.Value)
Visual Basic 편집기를 종료하고 프로그램을 테스트 6..
결과 :
결론 : 엑셀 VBA가 부정적인 번호와 텍스트로 잘못된 값을 포함하는 셀을 무시했다. 문 ‘오류 이력서 다음에’를를 사용하지 않고 두 개의 오류를 얻을 것입니다. 확실 오류를 무시하는 것은 OK 인 경우에만 문 ‘오류 이력서 다음에’는 사용에주의.
제곱근 2는 ‘제곱근이’명령 단추에 다음 코드 줄을 추가합니다.
-
같은 제곱근 1과 프로그램 만에 ‘오류 이력서 다음에’대체 :
On Error GoTo InvalidValue:
참고 : InvalidValue 무작위로 여기 선택, 당신이 어떤 이름을 사용할 수 있습니다.
코드의 나머지 부분에서이 이름을 참조해야합니다.
-
밖에서 각각 다음 루프의 경우, 먼저 다음 코드 줄을 추가 :
Exit Sub
이 라인없이, 코드 (에러 코드)의 나머지 부분은 오류가없는 경우에도 실행됩니다! 3. 엑셀 VBA로 시작하는 라인에서 실행을 계속 ‘InvalidValue :’오류가 타격시 (콜론을 잊지 마세요). 다음 코드 줄을 추가
InvalidValue:
-
우리는 지금 우리의 에러 코드의 간단한 유지. 우리는 텍스트와 오류가 발생한 셀의 주소가있는 MsgBox를 표시합니다.
MsgBox "can't calculate square root at cell " & cell.Address
오류 코드를 실행 한 후 실행을 다시 시작하기 위해 엑셀 VBA를 지시하려면 다음 줄을 추가 (5).
Resume Next
Visual Basic 편집기를 종료하고 프로그램을 테스트 6..
결과 :