Excel,遗忘密码后如何撤销工作表保护密码

简介: 1、打开您需要撤销保护密码的Excel文件;2、依次点击菜单栏上的工具---宏----录制新宏,输入宏名字如:ab;3、停止录制(这样得到一个空宏);4、依次点击菜单栏上的工具---宏----宏,选ab,点编辑按钮;5、删除窗口中的所有字符(只有几个),替换为以下内容;Public Sub 工作表保护密码()Const DBLSPACE As String = vbNewLine

1、打开您需要撤销保护密码的Excel文件;

2、依次点击菜单栏上的工具---宏----录制新宏,输入宏名字如:ab;

3、停止录制(这样得到一个空宏);

4、依次点击菜单栏上的工具---宏----宏,选ab,点编辑按钮;

5、删除窗口中的所有字符(只有几个),替换为以下内容;

Public Sub 工作表保护密码()
Const DBLSPACE As String = vbNewLine & vbNewLine
Const AUTHORS As String = DBLSPACE & vbNewLine
Const HEADER As String = "工作表保护密码"
Const VERSION As String = DBLSPACE & "版本 Version 1.1.2"
Const REPBACK As String = DBLSPACE & ""
Const ZHENGLI As String = DBLSPACE & "                  "
Const ALLCLEAR As String = DBLSPACE & "该工作簿中的工作表密码保护已全部解除。" & DBLSPACE & "请记得重新设置密码" _
& DBLSPACE & "注意:此方法仅用于遗忘密码使用。"
Const MSGNOPWORDS1 As String = "该文件工作表中没有加密"
Const MSGNOPWORDS2 As String = "该文件工作表中没有加密2"
Const MSGTAKETIME As String = "请耐心等候!" & DBLSPACE & "按确定开始回复"
Const MSGPWORDFOUND1 As String = "密码重新组合为:" & DBLSPACE & "$$" & DBLSPACE & _
"如果该文件工作表有不同密码,将搜索下一组密码并修改清除"
Const MSGPWORDFOUND2 As String = "密码重新组合为:" & DBLSPACE & "$$" & DBLSPACE & _
"如果该文件工作表有不同密码,将搜索下一组密码并解除"
Const MSGONLYONE As String = "确保为唯一的?"
Dim w1 As Worksheet, w2 As Worksheet
Dim i As Integer, j As Integer, k As Integer, l As Integer
Dim m As Integer, n As Integer, i1 As Integer, i2 As Integer
Dim i3 As Integer, i4 As Integer, i5 As Integer, i6 As Integer
Dim PWord1 As String
Dim ShTag As Boolean, WinTag As Boolean
Application.ScreenUpdating = False
With ActiveWorkbook
WinTag = .ProtectStructure Or .ProtectWindows
End With
ShTag = False
For Each w1 In Worksheets
ShTag = ShTag Or w1.ProtectContents
Next w1
If Not ShTag And Not WinTag Then
MsgBox MSGNOPWORDS1, vbInformation, HEADER
Exit Sub
End If
MsgBox MSGTAKETIME, vbInformation, HEADER
If Not WinTag Then
Else
On Error Resume Next
Do 'dummy do loop
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
With ActiveWorkbook
.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 .ProtectStructure = False And _
.ProtectWindows = False Then
PWord1 = Chr(i) & Chr(j) & Chr(k) & Chr(l) & _
Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _
Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
MsgBox Application.Substitute(MSGPWORDFOUND1, _
"$$", PWord1), vbInformation, HEADER
Exit Do 'Bypass all for...nexts
End If
End With
Next: Next: Next: Next: Next: Next
Next: Next: Next: Next: Next: Next
Loop Until True
On Error GoTo 0
End If

If WinTag And Not ShTag Then
MsgBox MSGONLYONE, vbInformation, HEADER
Exit Sub
End If
On Error Resume Next

For Each w1 In Worksheets
'Attempt clearance with PWord1
w1.Unprotect PWord1
Next w1
On Error GoTo 0
ShTag = False
For Each w1 In Worksheets
'Checks for all clear ShTag triggered to 1 if not.
ShTag = ShTag Or w1.ProtectContents
Next w1
If ShTag Then
For Each w1 In Worksheets
With w1
If .ProtectContents Then
On Error Resume Next
Do 'Dummy do loop
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
.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 Not .ProtectContents Then
PWord1 = Chr(i) & Chr(j) & Chr(k) & Chr(l) & _
Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _
Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
MsgBox Application.Substitute(MSGPWORDFOUND2, _
"$$", PWord1), vbInformation, HEADER
'leverage finding Pword by trying on other sheets
For Each w2 In Worksheets
w2.Unprotect PWord1
Next w2
Exit Do 'Bypass all for...nexts
End If
Next: Next: Next: Next: Next: Next
Next: Next: Next: Next: Next: Next
Loop Until True
On Error GoTo 0
End If
End With
Next w1
End If
MsgBox ALLCLEAR & AUTHORS & VERSION & REPBACK & ZHENGLI, vbInformation, HEADER
End Sub

6、关闭编辑窗口;

7、依次点击菜单栏上的工具---宏-----宏,选AllInternalPasswords,运行,确定两次,等候一两分钟,会出现以下对话框:

   这是Excel密码对应的原始密码(此密码和之前设置的密码均能打开此文档。

相关文章
|
3月前
|
数据安全/隐私保护
杨老师课堂之Excel VBA 程序开发第六讲根据部门列创建工作表
杨老师课堂之Excel VBA 程序开发第六讲根据部门列创建工作表
28 0
|
15天前
|
人工智能 小程序 Java
【技巧】Excel加锁忘密码?一文教你破解之道!
本文介绍了两种有效解决Excel文件被加锁且遗忘密码的方法:一是通过VBA代码操作解锁;二是利用压缩文件方式解除密码保护。无论你是编程高手还是技术新手,都能找到适合自己的解决方案,轻松恢复对文件的完全控制权。此外,还提供了丰富的相关阅读资源,助你进一步提升技能。
83 3
【技巧】Excel加锁忘密码?一文教你破解之道!
|
3月前
|
数据安全/隐私保护
杨老师课堂之Excel VBA 程序开发第六讲 根据制定列创建相应工作表及数据
杨老师课堂之Excel VBA 程序开发第六讲 根据制定列创建相应工作表及数据
27 1
|
3月前
|
数据安全/隐私保护
杨老师课堂之Excel VBA 程序开发第八讲使用工作表函数
杨老师课堂之Excel VBA 程序开发第八讲使用工作表函数
31 1
|
3月前
Excel (2) 美化工作表
Excel (2) 美化工作表
|
10月前
|
存储 安全 中间件
如何消除excel保存密码?
无论在企业还是在金融、医疗、能源单位中,账号管理像是一片混乱的领域。员工们为了方便,将各种账号密码散落在各处文件中,让账号管理变得举步维艰。
46 0
如何消除excel保存密码?
|
4月前
|
Python
【python自动办公】批量更改Excel中大量工作表的内容(附源码 有注释)
【python自动办公】批量更改Excel中大量工作表的内容(附源码 有注释)
162 0
|
存储 运维 JavaScript
你还用excel存明文密码么?使用vue写加解密小页面吧
你还用excel存明文密码么?使用vue写加解密小页面吧
102 0
【Office】【Excel】将多个工作表合为一个工作表
【Office】【Excel】将多个工作表合为一个工作表
126 0
【Office】【Excel】将多个工作表合为一个工作表
【Excel自动化办公Part3】:工作表的创建、删除、复制和修改名称,冻结窗格,添加筛选
【Excel自动化办公Part3】:工作表的创建、删除、复制和修改名称,冻结窗格,添加筛选
150 0
【Excel自动化办公Part3】:工作表的创建、删除、复制和修改名称,冻结窗格,添加筛选