2016-09-28 8 views
1

사용자 입력에 따라 서식을 지정하려는 스프레드 시트가 있지만 셀이 사용자 입력 셀이라는 서식에 의해 결정될 때까지 잠긴 상태로 두어야합니다. 사용자 인터페이스 용 셀만 보이지만 VBA에서 편집 할 수 있도록하는 코드가 있습니다.VBA를 사용하여 셀 보호 해제

> 'protects all sheets upon opening work book 
>  Me.Worksheets("Sheet1").Protect "Password", UserInterfaceOnly:=True 
>  Me.Worksheets("Sheet2").Protect "Password", UserInterfaceOnly:=True 
>  Me.Worksheets("Sheet3").Protect "Password", UserInterfaceOnly:=True 

그래서 지금은 다음 세포가 난 후 시트를 고정하기 전에 편집을 허용 내가 시도 사용자

Sheets("Sheets2").Protection.AllowEditRanges.Add "Test", Range("C2", "C8") 
Sheets("Sheets2").Protection.AllowEditRanges.Add "Test", Range("H6") 
Sheets("Sheets2").Protection.AllowEditRanges.Add "Test", Range("K6") 

에 의해 편집 할 수 있도록해야합니다. 내가 좋아하는 것은 사전에 편집 가능한 셀을 정의하는 대신 형식을 적용한 후 셀을 잠금 해제하는 VBA 코드입니다. 감사의 말에 감사드립니다.

답변

1

범위의 Locked 속성을 변경하십시오.

Range("C2", "C8").Locked = false 

이것은 셀 서식 설정 | 보호 | 셀에서 보호 기능을 제거하기 위해 잠긴 확인란을 선택하면 셀을 즉시 편집 할 수 있습니다.

또한, 향후 사용을 위해, 당신은 보호 단계로 간단한 루프를 추가하는 방법에 대한 생각을 할 수 있습니다 :

Dim sht as Worksheet 

For each sht in ThisWorkbook.Sheets 
    sht.protect password:=Password, Userinterfaceonly:=True 
Next sht 

명 새로운 시트를 추가하여 제한을 해결 얻을 수없는 그런 식 및 보호 시트의 이름이 바뀌면 계속 작동합니다.

+0

감사합니다. 보호 루프의 팁도 좋습니다. –