2013-03-01 2 views
-2

이 코드는 열려있는 여러 파일에 대해 작업을 수행한다고 가정합니다. 여기서 call Donemovement은 해당 파일의 형식을 지정하고 Call AllSingles은 파일을 적절한 경로로 가져옵니다. 파일 이름이 ABC라면 ABC 폴더에 DEF가 저장되면 DEF에 저장됩니다. AllSingles에 정의되지 않은 이름으로 파일이 열릴 때 코드 실행을 중지시킬 수있는 코드 줄이 필요합니다. 파일을 적절한 파일 위치로 가져갈 수 없기 때문입니다.Excel에서 VBA 매크로 중지

Sub OpenAllWorkbooksnew() 

    Set destWB = ActiveWorkbook 
    Dim DestCell As Range 


    Dim cwb As Workbook 
    For Each cwb In Workbooks 


     Call donemovementReport 



    Call AllSingles 






    ActiveWorkbook.Close False 

    Next cwb 


    End Sub 
+0

중지해야하는 경우 bool을 반환하는 함수를 만듭니다. ** ** 각 ** 사용 ** Exit ** – Belial09

답변

1

이 페이지에서 문제를 해결할 수 있습니까? http://www.cpearson.com/excel/errorhandling.htm

+0

에 대해 남겨두고 싶다면 Allsingles에 존재하지 않는 번호를 찾으면 그 번호를 찾으십시오. – user1960257

+0

아니면 그냥 계속하고 싶습니까? No number found -> Error -> Analysis Error -> 다음 파라미터로 리콜 기능. 오류 처리는 항상 생각하는 것이 중요합니다 ... – user1711797

0

런타임시 코드를 중지하는 것은 좋지 않습니다. 목표가 매핑 된 모든 파일을 처리하고 매핑되지 않은 파일에 대한 메시지가 표시되면 매핑되지 않은 파일을 자동으로 로깅하는 것이 좋습니다. 워크 시트, 출력 창 또는 FileSystemObject를 사용하여 텍스트 파일에이 작업을 수행 할 수 있습니다. See Here 스위치 케이스를 사용하여 다른 영역에 저장하는 경우 Case Else 섹션에서 실패한 매핑에 대한 로그를 작성할 수 있습니다.

이렇게하면 맵핑되지 않은 파일로 인해 프로그램이 계속 멈추는 것을 보지 않고도 프로그램을 실행할 수 있습니다. 그런 다음 다시 돌아와 출력 로그를 읽고 실패한 파일을 모두 매핑 할 수 있습니다.