贊贊小屋

Excel儲存格被鎖定忘了密碼?VBA取消保護工作表

Excel為了防止修改內容,可以將工作表上的儲存格範圍鎖定保護,可是如果密碼忘記了卻很麻煩,本文介紹簡單幾行VBA程式代碼,執行巨集解除工作表保護。

一、贊贊小屋的練習題檔案有工作表想取消群組,發現被保護住了,密碼和原本所設定的不一樣,沒辦法編輯工作表。

Excel儲存格被鎖定忘了密碼?VBA取消保護工作表 VBA自動化 第1張

二、滑鼠游標移到工作表標籤上,右鍵點選「檢視程式碼」這個快捷選項。

Excel儲存格被鎖定忘了密碼?VBA取消保護工作表 VBA自動化 第2張

三、於Excel外掛的VBA編輯視窗中,貼上下列程式代碼:

Sub 解除工作表密碼()

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, AllowFiltering:=True

ActiveSheet.Protect DrawingObjects:=False, Contents:=True, AllowFiltering:=True

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, AllowFiltering:=True

ActiveSheet.Protect DrawingObjects:=False, Contents:=True, AllowFiltering:=True

ActiveSheet.Unprotect

End Sub

Excel儲存格被鎖定忘了密碼?VBA取消保護工作表 VBA自動化 第3張

四、上方功能區「檢視」頁籤,將「巨集」程式集下拉,選擇「檢視巨集」。依照浮窗說明可知其快捷鍵為「Alt+F8」。

Excel儲存格被鎖定忘了密碼?VBA取消保護工作表 VBA自動化 第4張

五、「巨集」對話方塊會看到第三步驟所貼上的程式碼,在這裡呈現為「解除工作表密碼」巨集,直接按「執行」。

Excel儲存格被鎖定忘了密碼?VBA取消保護工作表 VBA自動化 第5張

六、執行後跳出「取消保護工作表」對話方塊,中間是輸入密碼欄位,不過這裡直接「取消」即可。

Excel儲存格被鎖定忘了密碼?VBA取消保護工作表 VBA自動化 第6張

七、雖然沒有輸入過正確密碼,工作表已解除保護,可以取消群組做任何編輯。

Excel儲存格被鎖定忘了密碼?VBA取消保護工作表 VBA自動化 第7張

八、參考微軟Office產品支援中心關於Excel保護工作表的說明:「並非作為安全性功能的用途。此功能只是用來防止使用者修改工作表內的鎖定儲存格。」

Excel儲存格被鎖定忘了密碼?VBA取消保護工作表 VBA自動化 第8張

仔細分析VBA程式碼,它藉由工作表保護屬性的反覆設定將密碼清除,最後再解除保護,因此巨集執行完要再確定取消保護,效果等同於把工作表保護更新為空白密碼。參考微軟相關說明會更加清楚,此功能並非安全性等級的用途,也許因為如此可利用VBA執行繞過Excel指令限制,在灰色地帶直接跳過密碼設定。