2017-11-24 1 views
-1

스프레드 시트를 얻는 매크로가 있습니다. 모든 시트를 숨기고 보호합니다. 숨어있는 부분이 완벽하게 작동합니다. 그러나 보호 부분은 아닙니다. 내 코드는 다음과 같습니다.시트 보호 및 숨기기

Dim sh As Worksheet 

    For Each sh In Worksheets 

    If sh.Name <> "Simulador" Then sh.Visible = xlSheetHidden 
    sh.Protect Password:="123" 

    Next 

어디에서 잘못 될지 알고있는 사람이 있습니까?

+1

오신 것을 환영합니다 :

은 다음 페이지를 참조하십시오. 나는 다른 사람들이 당신이 이미 답을 찾으려고 노력했는지 알기를 원할 것입니다. 지금까지 부분적으로 도움이 된 링크를 추가하여 다른 사람들이 솔루션을 찾기 위해 노력한 사실을 알 수 있습니다. Microsoft 설명서는 때로는 어려울 수 있지만 여기에 그 대답이 나와 있습니다. – Grantly

+1

Google의 첫 번째 링크 ... https://analysistabs.com/excel-vba/protect-unprotect-worksheets/ 매개 변수 값이 누락되었을 수 있습니다. – Grantly

+2

'하지만 보호 부분은 아닙니다. '' 작동 안함"?. 어떤 오류가 발생하는지, 즉 하나를 얻고 있다면 ... 그것은 나를 위해 작동합니다. 즉, 시트를 보호합니다. –

답변

1

숨겨진 시트를 숨김 해제하지 못하도록하기 위해, 당신이 필요로하는 통합 문서 구조를

을 보호하기 위해이 시도 :

Sub TEST() 
     With ThisWorkbook 
      .Sheets("Simulador").Visible = xlSheetVeryHidden 
      .Protect Password:="PassKey", Structure:=True 
     End With 
     End Sub 

만 여전히 사용하여 취소 할 수 있습니다 xlSheetVeryHidden에 시트의 가시성을 설정 vba. 유래에
Workbook.Protect Method (Excel)

1

코드는 rightclicking으로 시트를 숨기는 것과 거의 같습니다. 다시 오른쪽을 클릭하고 숨기기를 취소하면 취소 할 수 있습니다. 대신, 당신은 사용할 수 있습니다

Dim sh As Worksheet 

    For Each sh In Worksheets 

    If sh.Name <> "Simulador" Then sh.Visible = xlVeryHidden 
    sh.Protect Password:="123" 

    Next 

VeryHidden 시트를 취소 할 수 명심하십시오, 당신은 VBA 함께해야 할 것이다 : sh.Visible = True

관련 문제