2014-02-21 3 views
0

VBA에서 조작하려는 Excel 통합 문서에 많은 보호 된 시트가 있습니다.Sheet.Protect UserInterfaceOnly : = True 묻는 메시지

모든 암호는 같은 비밀번호 (10 자 이상)로 보호됩니다. 내가 시트를 조작하는 코드를 실행하기 전에

, 내가 항상 말 :이 시트에 사용하려면 코드를 가능하게

SheetName.Protect UserInterfaceOnly:=True 

.

그러나 문제는이 코드가 보호 해제 프롬프트를 표시하는 시트 중 하나에 불과하다는 것입니다.

다른 모든 용지에는 발생하지 않습니다.

나는 이것이 왜 될 수 있는지 전혀 알지 못하며 어떤 문제 해결 도움이 크게 감사 할 것입니다!

답변

0

내 코드 전에이를 가하고 사용 방법 :

for i = 1 to countSheet 
sheets.item(i).unprotect("pass") 
next i 

그냥 코드 전에이 퍼팅 종료 :

for i = 1 to countSheet 
sheets.item(i).protect("pass") 
next i 
+0

나는 이것이 작동합니다 동의 - 나는 전에이 방법을 적용하는 데 사용 UserInterfaceOnly 설정에 대해 배웠습니다. 그러나 나는 오히려이 문제를 해결하려고 시간을 보내고 싶다 - 특히 방법이 다른 시트에 완벽하게 작동하기 때문에 (나는 완전히 보호 된 셀을 편집하고있다). – Robert

+1

실제로 컬렉션을 반환하는 'Sheets' 컬렉션의 Workbook 객체가 있으며 컬렉션에서'for each' 루프를 사용하는 것이 더 효율적입니다. –

관련 문제