Board logo

標題: {分享]解除EXCLE保護儲存格的巨集程式 [打印本頁]

作者: bowaycho    時間: 2011-11-10 11:25     標題: {分享]解除EXCLE保護儲存格的巨集程式

此乃網路上有看到~在這與大家分享嚕!!

Excel 2007密碼保護的解除方法

VBA巨集程式破解法:

第一步:打開該文件,切換到“檢視”選項,點擊“巨集”→“錄製巨集”,出現“錄製巨集”窗口,在“巨集名稱”打上:PasswordBreaker,點擊“確定”退出;

第二步:再點擊“巨集”→“檢視巨集”,選擇“巨集名稱”下的“PasswordBreaker”並點擊右邊的“編輯”,會自動打開“Microsoft Visual Basic”編輯器,用以下的內容完全替換右側窗口中的所有編碼:


Sub PasswordBreaker()
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)
ActiveWorkbook.Sheets(1).Select
Range("a1").FormulaR1C1 = 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


第三步:再點擊“巨集”→“檢視巨集”,選擇“巨集名稱”下的“PasswordBreaker”並點擊“執行”,密碼就現形了。


第四步:切換“校閱”選項,點擊“保護工作表”,然後輸入密碼即可解除鎖定。

本方法適用於活頁簿可以開啟,可是工作表是密碼鎖住的狀態下,若要破解整個活頁簿,請使用另一篇 Excel 密碼破解工具 所介紹的軟體破解。
作者: oobird    時間: 2011-11-10 23:18

2007沒試過
在2003,要移除保護,只要再強制做一次相同的保護,原來的工作表保護就沒了。
因為設了保護工作表後,在工具~保護上只剩下"取消保護工作表"可選
所以還是要VBA。不懂怎麼寫的朋友可在別的工作表錄製一遍保護工作表的代碼。
如錄下來的得到的是:
  1. Sub Macro1()
  2.     ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
  3.         , AllowFormattingCells:=True, AllowFormattingColumns:=True, _
  4.         AllowInsertingHyperlinks:=True, AllowFiltering:=True
  5. End Sub
複製代碼
你只要在底下加一行ActiveSheet.Unprotect
變成
  1. Sub Macro1()
  2.     ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
  3.         , AllowFormattingCells:=True, AllowFormattingColumns:=True, _
  4.         AllowInsertingHyperlinks:=True, AllowFiltering:=True
  5. ActiveSheet.Unprotect
  6. End Sub
複製代碼
運行一下工作表保護就取消了。
作者: OFFICE專家    時間: 2011-11-11 00:07

本帖最後由 OFFICE專家 於 2011-11-11 19:26 編輯

回復 2# oobird

條件需>EXCEL 2000 版 才能使用
Sub Macro1()
ActiveSheet.Protect  AllowFiltering:=True 'EXCEL2002功能...隨便一種都可以
ActiveSheet.Unprotect
End Sub
作者: OFFICE專家    時間: 2011-11-20 12:32

回復 3# OFFICE專家

大家可否幫測一下 上述程序 在EXCEL2007與2010 是否可用
作者: Scott090    時間: 2013-3-23 22:15

回復 4# OFFICE專家


    測試 2010 x64 保護的工作表,有效的程度要看原來"允許此工作表的使用者能(O)" 的選項而定。
學習了。
作者: kenlin    時間: 2015-1-15 15:54

為何只要11碼的A或B
再加一碼的變化就可以解碼了
解密的原理完全不能理解 @@"
作者: LITTLEFAT7048    時間: 2017-4-25 07:22

這個可以用唷(測試用的版本是EXCEL2010),謝謝您的分享!




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)