2012-01-19 7 views
0

오류가 발생하면 양식에 입력 된 정보를 변경하고 매크로로 전달한 다음 계속 진행합니다. Len (Dir sFilePath & newfol, vbDirectory)) = 0 ...VBA - Excel - On Error goto userform

If Len(Dir(sFilePath & newfol, vbDirectory)) = 0 Then 
      MkDir sFilePath & newfol & "\" 
      On Error GoTo UserForm1 
     Else 
      MsgBox ("Folder already exists please re enter new folder name") 
      'End 
      UserForm1.Show 
      MoveAndSave_Reports 
End If 

위는 나에게 오류 메시지를 제공합니다 : 컴파일 오류 : "ON 오류 GOTO UserForm1을"

답변

3

에서 정의되지 않은 라벨 당신이 "에 사용하는 경우 오류 GoTo "문을 사용하면 오류가 발생하면 현재 프로 시저의 특정 줄로 건너 뜁니다. 예를 들어 코드 (내 "에 오류"문 다음에) 오류를 명중이 예에서

On Error GoTo ErrorHandler 
x = 10/0 
msgbox "x = infinity!" 

ErrorHandler: 
msgbox "Cannot divide by zero" 

, 그것이 무엇을하고 있는지 중지하고 ErrorHandler를 라벨에 코드를 실행하기 시작합니다 (그것은 라벨의의 때문에 끝에 콜론). 이 코드를 실행하면 x = 무한이라는 메시지 상자가 표시되지 않습니다. 일단 0으로 나누려고하면 오류가 발생하면 ErrorHandler 레이블로 넘어 가서 0으로 나눌 수 없다는 메시지를 보냅니다.

칩 피어슨 (Chip Pearson)은 기본적인 오류 처리에 대한 좋은 소개가 있습니다 here.

+0

Craig가 말한 것에 덧붙여 레이블을 만든 다음 사용자 양식을 호출하고 수행해야 할 작업을 수행 할 수있는 코드를 작성하십시오. –

관련 문제