Có một cách đơn giản để unprotect. Cụ thể như sau:
Yêu cầu hệ thống:
- Có MS Office (hiển nhiên roài :P )
- Có cài VBA, nếu bạn không biết nó là gì, hãy thử mở excel, xong ấn Alt+F11, nếu nó mở ra cửa sổ Microsoft Visual Basic tức đã cài VBA, nếu nó không ra thì hãy chạy lại bộ cài MS Office, chọn update, xong tìm trong nhóm cuối cùng của các gói cài đặt sẽ thấy nó.
- Mở file excel cần mở khoá lên
- Ấn Alt+F11 để mở VBA
- Ấn F7 để mở cửa sổ soạn thảo mã nguồn
- Dán đoạn code bên dưới vào cửa sổ vừa mở ra đó
- Ấn F5, hoặc vào menu Run\Run Sub/User form để chạy đoạn mã này
- Nếu ấn F5 mà nó yêu cầu lựa chọn Macroname thì chọn SheetXXX.unprotectedAll rồi click Run nó sẽ chạy
- Chờ từ một đến vài phút (tuỳ tốc độ CPU từng máy tính) sẽ có thông báo sheet đã được unprotect. Mỗi khi một sheet được unprotected thành công, bạn sẽ nhận được thông báo, nhớ nhấn Ok để nó unprotect sheet tiếp theo nhé. Nếu không muốn nhận được thông báo này, bạn chỉ cần xoá 3 dòng mã từ dòng 50 đến dòng 54 là xong.
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
0 nhận xét:
Đăng nhận xét