2016-02-13 23 views
4

當我打電話Thisworkbook.Protect在VBA工作簿從當前工作簿的保護狀態,而不是隻保護工作簿中的保護實際上切換Workbook.Protect錯誤與切換保護

Thisworkbook.Unprotect does not do this though。

任何人都知道爲什麼會出現這種情況或如何避開它?

+3

我從來沒有注意到。在我的電腦上,Excel 2016是真實的。你可以用'If ThisWorkbook.ProtectStructure'或'If Thisworkbook.ProtectWindows'來測試。另外,你看看'UserInterfaceOnly',它可以消除在代碼中保護和取消保護的必要性嗎? –

+1

UserInterfaceOnly不適用於我,因爲我有一些代碼修改了仍然需要取消保護的內容。我做了一點研究,這似乎是一個已知的問題。 雖然檢查保護狀態仍然有效。 – KingKong

回答

3

不知道這是由設計或一個錯誤。如果你提供的參數,它工作正常:

ActiveWorkbook.Protect ,true,true 

ActiveWorkbook.Protect Structure:= true 

無論你需要/想。這樣它就不會關閉保護,只能保護關閉。

要關閉保護關閉,你可以使用這個(assumning你只打開結構保護):

ActiveWorkbook.Protect Structure:= false 

的參數是:

.Protect(Password, Structure, Windows)