2011-11-24 52 views
2

我有下面的代碼,以保護工作簿的表在Excel 2007中工作表保護使用ws.protect設置

Private Sub password_protectallsheets() 
For Each ws In Worksheets 
ws.protect Password = "edc1" 
Next 
End Sub 

但是當我嘗試使用密碼通過Excel 2007菜單取消保護工作表(查看 - >取消保護表),它表示您提供的密碼不正確。

任何幫助非常感謝。

回答

0

Ws.Unprotect是否真的保護工作表? - 切切實實的它取消保護工作表不設置保護

設置保護在宏爲什麼不記錄保護工作表,並看看代碼

+0

這是一個錯字。自從編輯了我的帖子。 – ashleych

0

嘗試:

Option Explicit 

Private Sub password_protectallsheets() 
    Dim ws As Worksheet 
    For Each ws In Worksheets 
     ws.Protect "edc1" 
    Next 
End Sub 

沒有password關鍵參數。
它的工作對我的Excel 2007中

順便說一句,一定要複製/粘貼密碼或一定要檢查,如果最後一個字符是一個閹1(一個)或l(小寫字母L)。

1

密碼參數需要用「:=」指定 - 不只是「=」。這是方法的參數真一般:

ws.protect Password := "edc1" 

可以讓編譯器捕獲這些類型的錯誤,始終使用選擇的模塊的開頭明確,如JMAX上面已經做。當你這樣做的時候,當你忘記「:」選項時,編譯器會給你一個「Variable not Defined」錯誤選項Explicit將爲你節省大量的時間和其他類型的變量聲明錯誤。要爲所有新模塊啓用它,請在VBE中選中工具>選項>編輯>需要變量聲明。

我找不到的部分是爲什麼在沒有「:」密碼的代碼中完全分配了。我希望這張表能夠得到保護,但沒有密碼。