標籤:excel
今天同事遇到一個Excel的問題,他忘記了工作薄保護的密碼,以至於無法再編輯文檔內的資料。所以跑過來求助。這個問題最後解決了,但個人覺得比較有意思,所以把這個方法發布出來,也權當是給自己做個筆記吧。
首先確認,他所使用的版本為64位英文版Office2010。
如果不輸入受保護的工作薄密碼,那麼當嘗試編輯工作薄的內容時會得到以下報錯
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/3F/F2/wKiom1PM3xCDfsuRAAED4EDAF-c111.jpg" style="float:none;" title="1.png" alt="wKiom1PM3xCDfsuRAAED4EDAF-c111.jpg" />
中文意思是“您試圖更改的儲存格或圖表受保護,因而是唯讀。若要修改受保護儲存格或圖表,請先使用‘撤消工作表保護’命令(在‘審閱’選項卡的‘更改’組中)來取消保護。可能會提示您輸入密碼”。
這時候我們可以用VBA宏代碼的方法來破解工作薄保護密碼:
1. 開啟需要破解的Excel工作薄
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/3F/F2/wKiom1PM3xaxydhAAAGo6Kr6h3o010.jpg" style="float:none;" title="2.png" alt="wKiom1PM3xaxydhAAAGo6Kr6h3o010.jpg" />
可以看到現在菜單上高亮出來的是“Unprotect Sheet”,說明這個工作薄還是受保護狀態
2. 接下來按ALT+F11或者找到“開發人員工具”中的“查看代碼”
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/3F/F2/wKioL1PM4DLx8rvbAAESDS1RfV4139.jpg" style="float:none;" title="3.png" alt="wKioL1PM4DLx8rvbAAESDS1RfV4139.jpg" />
3. 然後在上面白色空白處粘貼下面的所有代碼,不需要更改代碼中的任何字元
Sub PasswordBreaker()
‘Breaks worksheet password protection.
Dim i As Integer, j As Integer, k As Integer
Dim l As Integer, m As Integer, n As Integer
Dim i1 As Integer, i2 As Integer, i3 As Integer
Dim i4 As Integer, i5 As Integer, i6 As Integer
On Error Resume Next
For i = 65 To 66: For j = 65 To 66: For k = 65 To 66
For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66
For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66
For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126
ActiveSheet.Unprotect Chr(i) & Chr(j) & Chr(k) & _
Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _
Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
If ActiveSheet.ProtectContents = False Then
MsgBox "One usable password is " & Chr(i) & Chr(j) & _
Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _
Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
Exit Sub
End If
Next: Next: Next: Next: Next: Next
Next: Next: Next: Next: Next: Next
End Sub
4. 然後按F5或者點擊“運行”按鈕
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/3F/F2/wKioL1PM4DfjJkweAARjs14Zm9w358.jpg" style="float:none;" title="4.png" alt="wKioL1PM4DfjJkweAARjs14Zm9w358.jpg" />
5. OK,現在的Excel工作薄已經變成未受保護模式了。同時,還彈出了一個對話方塊,裡麵包含著一組密碼,這個密碼可用於同一個Excel工作薄中其他工作表破解使用
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/3F/F2/wKioL1PM4DyzYg6vAAJcnaGLvp8145.jpg" style="float:none;" title="5.png" alt="wKioL1PM4DyzYg6vAAJcnaGLvp8145.jpg" />
6. 現在再來看工作薄的菜單處的狀態已經變成了“Protect Sheet”
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/3F/F2/wKiom1PM3yLiX4pcAADDgVBTzcM152.jpg" style="float:none;" title="6.png" alt="wKiom1PM3yLiX4pcAADDgVBTzcM152.jpg" />
本文出自 “劉笑-技術成就夢想” 部落格,請務必保留此出處http://pekingsmile.blog.51cto.com/16687/1441045
破解Excel2010受保護的工作薄