2017-02-14 1 views
2

시트가 추가되거나 제거되는 테이블을 "HideSheets"(단일 열)라고합니다. 내가테이블의 탭 이름을 기반으로 Excel 통합 문서의 시트를 숨기는 방법

Sub HideSheets() 
    Dim cell As Range 
    On Error Resume Next 
    For Each cell In Sheets("Index").Range("HideSheets") 
     ' Hide sheets 
     Sheets(cell.Value).Visible = False 

End Sub 
+1

'For Each'는 루프 할 코드 하단에'Next '가 있어야합니다 (즉,'End Sub' 바로 앞에). – CallumDA

답변

2

For Each의 표를 참조하려면 어떻게 또한 오류가 발생하고 적절하게 다룰 수있는 조건을 확인, 오히려 On Error Resume Next를 사용하여보다 Next 명령

Sub HideSheets() 
    Dim r As Range 
    On Error Resume Next 
    For Each r In Sheets("Index").Range("HideSheets") 
     ' Hide sheets 
     Sheets(r.Value).Visible = xlSheetHidden 
    Next r 
End Sub 

이 있어야합니다. 예를 들어, 다음과 같은 오류 (들)이 발생한다고 설명 사용자에게 오류를 반환 :

  1. 사용자가 통합 문서
  2. r.Value모든 시트를 숨길 시도 유효한 시트 이름이 아닙니다.
+0

여기에서 오류 처리에 대한 추가 정보 : http://stackoverflow.com/ 질문/1038006/good-patterns-for-vba-error-handling – CallumDA

관련 문제