문제 표준에서의 오류 처리 vba 때문에 설명되지않는 반복
-
02-01-2020 - |
문제
나는 다음과 같은 지침을 만드는 방법에 새로운 VBA 절차에 액세스합니다.하나의 사양은 사용하는 표준 ExitProc-오류를 처리합니다.전에는 ment 하지만 나는 예로 온라인 및 이전에 완료한 예 공급 템플릿으로,나이:
On Error GoTo HandleError
'code that may cause errors
ExitProc:
Exit Function
HandleError:
If FindFolders = False Then
MsgBox ("Required folders for " & InstrumentName & " not found")
ElseIf FindFolderPaths = False Then
MsgBox ("Required folder paths for " & InstrumentName & " not found")
End If
MsgBox Err.Number & " " & Err.Description & " in FindFolderPaths"
Resume ExitProc
End Function
findfolders 은 boolean 변수 내가 거짓으로 표시하는 절차에 오류가 있음을 나타내고 FindFolderPaths 이름은 절차의 내용으로 표시 여부의 경로는 발견했다.을 실행할 때 이 절차는 다음과 같은 msg 상자가 나타납니다.내가 만들에 오류가 폴더 이름을 표시하는 방법 오류 처리 될 수 있:
-필요에 대한 폴더 ICPMS 발견되지 않았
-0 에 FindFolderPaths
-필요에 대한 폴더 ICPMS 발견되지 않았
-20 하지 않고 이력서에 오류가 FindFolderPaths
때 나는 강화 절차를 통해 단계별로처럼 보이는 그것의 반복을 통해 HandleError 하기 전에 두 번가 ExitProc 과할 수 없습니다.또한 오류 메시지가 동시에 변화의 두 번째는 루프에서 HandleError 는 이상한 일이다.
해결책
문제 것 같다는"잘못 사용하는 오류"핸들러를 호출하여 사용하는 방법으로 직접 코드를 사용하여 Goto HandleError
대신 그것은 자동으로 호출할 때 오류가 발생합니다.
이 설명할 것이 정확히 무엇을 보고서 출력되었다면 코드에 달렸다:
-Required folders for ICPMS not found 'shows regardless of what triggers the handler
-0 in FindFolderPaths 'err number of zero means there's no error
Resume Exit Proc
다음 트리거 제 오류,부르는 코드가 두 번째 시간
-Required folders for ICPMS not found 'not relevant here...
-20 Resume without Error in FindFolderPaths 'an actual error number and message
일반적으로있는 경우의 일부 조건을 테스트할 수 있습니다(예:누락된 폴더에)당신은 필요가 없는 손잡이를 호출하여는 오류를 표시할 수 있습에서 메시지의"일반"코드고 그냥 Exit function
.또한,인상을 사용하여 사용자정의 오류 Err.Raise
, 을 제공,그것은 특정 오류 번호 및 설명할 수 있는 테스트하고 적절하게 처리하는 오류 처리기입니다.
http://msdn.microsoft.com/en-us/library/office/aa164019(v=office.10).aspx#odc_tentipsvba_topic3
다른 팁
RESUT EXITPROC을 제거합니다.코드는 끝 기능을 히지면 기능을 남깁니다.또한 MsgBox를 호출 할 때 괄호를 제거해야합니다.MsgBox와 동일한 것을 설정할 때만 괄호를 사용하십시오.