0
我遇到了一個問題,我創建了一個自動化功能,以自動填寫從網站下載的電子表格的報表。但是,這些工作表受到密碼保護,我發現了一個代碼來解鎖工作簿,而不必提供密碼,但在Excel 2016中無法工作,任何人都知道其他方式?在不知道密碼的情況下解鎖受保護的工作簿
這裏是我的代碼:
Sub UnProtect_Excel_WorkSheet()
'Unlock Protect Excel Worksheet
Dim i1 As Integer, i2 As Integer, i3 As Integer, j1 As Integer, j2 As Integer, j3 As Integer
Dim k1 As Integer, k2 As Integer, k3 As Integer, l1 As Integer, l2 As Integer, l3 As Integer
Dim a As Double
On Error Resume Next
a = 0
'Try all Possible Alternate Combination Password
For i1 = 65 To 66: For i2 = 65 To 66: For i3 = 65 To 66
For j1 = 65 To 66: For j2 = 65 To 66: For j3 = 65 To 66
For k1 = 65 To 66: For k2 = 65 To 66: For k3 = 65 To 66
For l1 = 65 To 66: For l2 = 65 To 66: For l3 = 32 To 126
ThisWorkbook.Sheets(1).Unprotect Chr(i1) & Chr(i2) & Chr(i3) & Chr(j1) & Chr(j2) & Chr(j3) & Chr(k1) & Chr(k2) & Chr(k3) & Chr(l1) & Chr(l2) & Chr(l3)
a = a + 1
ThisWorkbook.Sheets(2).Cells(a, 1) = Chr(i1) & Chr(i2) & Chr(i3) & Chr(j1) & Chr(j2) & Chr(j3) & Chr(k1) & Chr(k2) & Chr(k3) & Chr(l1) & Chr(l2) & Chr(l3)
'Check if the Protection is Removed
If ActiveSheet.ProtectContents = False Then
MsgBox "One usable password is " & Chr(i1) & Chr(i2) & Chr(i3) & Chr(j1) & Chr(j2) & Chr(j3) & Chr(k1) & Chr(k2) & Chr(k3) & Chr(l1) & Chr(l2) & Chr(l3)
Exit Sub
End If
'Exit Loop
Next: Next: Next: Next: Next: Next
Next: Next: Next: Next: Next: Next
End Sub
也許很愚蠢 - 如果你正在爲報告下載這些文件,你能不向上傳者詢問密碼嗎?或者,這是不是一個工作相關的事情,你可以得到那個?此外,這是否會在2016年拋出任何錯誤,或只是不解鎖工作簿?如果沒有錯誤發生,請刪除(或註釋掉)「On Error Resume Next」來查看它是什麼。 – BruceWayne
從Excel 2013及之後開始,bruteforce方式(您的代碼)不再有效。我知道的唯一方法仍然存在,就是將excel文件更改爲zip並通過xml刪除密碼。 – rwilson
@rwilson,介意分享如何做到這一點?我們的團隊實際上有幾個文件被一位前員工鎖定,他們沒有分享pw ... – acousticismX