前言

适用环境

  1. Office 2003(也就是老版的.xls文件)

  2. 用到宏操作

  3. 可以解除【审阅->保护工作表】的密码保护,其他的密码保护不能处理。

解决

具体步骤

  1. 打开需解除保护密码的Excel文件(.xls);

  2. 从菜单栏里找到并打开【录制宏】;

    

  3. 直接点击【停止录制】(这样得到一个空宏);

  4. 点击【宏】,找到刚刚录制的宏,点击编辑;

  5. 删除窗口中的所有代码,替换为下面的内容;

  6. 如果菜单没有上述描述的按钮,可以在【文件->选项->自定义功能区】找

  7. Ctrl+S保存关闭编辑窗口;

  8. 点击【宏】,找到刚刚编辑的宏【AllInternalPasswords】,点击执行,按照提示信息操作;

  9. 等待一会弹窗会有下面的提示,这样就是成功了!(记得保存弹窗中的密码,后面要用)

  10. 这时密码已经被清除掉了,你就可以随意修改文件内容了,如果想恢复原来的密码状态,重新点击【审阅->保护工作表】把弹窗中找到的密码原封不动的拷贝进去,并保存,这样原来的密码也可以用,这个密码也可以用

直接选中窗口按Ctrl+C就能拷贝窗口的全部文字,可以先粘贴到文本编辑器里再取获得的密码

  

代码

Option Explicit

Public Sub AllInternalPasswords()
' Breaks worksheet and workbook structure passwords. Bob McCormick
' probably originator of base code algorithm modified for coverage
' of workbook structure / windows passwords and for multiple passwords
'
' Norman Harker and JE McGimpsey 27-Dec-2002 (Version 1.1)
' Modified 2003-Apr-04 by JEM: All msgs to constants, and
' eliminate one Exit Sub (Version 1.1.1)
' Reveals hashed passwords NOT original passwords
Const DBLSPACE As String = vbNewLine & vbNewLine
Const AUTHORS As String = DBLSPACE & vbNewLine & _
"改编自Bob McCormick的代码。"
Const HEADER As String = "重置密码"
Const VERSION As String = DBLSPACE & "Version 1.1.1 2003-Apr-04"
Const REPBACK As String = DBLSPACE & "感谢使用!"
Const ALLCLEAR As String = DBLSPACE & "工作簿现在应该没有任何密码保护,因此请确保:" & _
DBLSPACE & "立即保存!" & DBLSPACE & "并且" & _
DBLSPACE & "备份!, 备份!!, 备份!!!"
Const MSGNOPWORDS1 As String = "工作表、工作簿结构或窗口上没有密码。" & AUTHORS & VERSION
Const MSGNOPWORDS2 As String = "对工作簿结构或窗口没有保护" & _
"。" & DBLSPACE & _
"继续取消工作表保护。" & AUTHORS & VERSION
Const MSGTAKETIME As String = "按下OK按钮后,会需要花费一些时间" & _
"。" & DBLSPACE & "这个时间的长短取决于密码的难度和电脑的性能" & _
"。" & DBLSPACE & _
"请耐心等待,或者先去喝杯茶!" & AUTHORS & VERSION
Const MSGPWORDFOUND1 As String = "您设置了工作表结构或Windows密码" & _
"。" & DBLSPACE & _
"找到的密码是:" & DBLSPACE & "$$" & DBLSPACE & _
"请记下来,以备将来由设置此密码" & _
"的同一个人在其他工作簿中使用" & DBLSPACE & _
"现在检查并清除其他密码" & AUTHORS & VERSION
Const MSGPWORDFOUND2 As String = "您设置了工作表密码" & _
"。" & DBLSPACE & "找到的密码是:" & _
DBLSPACE & "$$" & DBLSPACE & "请记下来,以备将来由设置此密码" & _
"的同一个人在其他工作簿中使用" & _
"。" & DBLSPACE & "现在检查并清除其他密码" & _
"。" & AUTHORS & VERSION
Const MSGONLYONE As String = "只有使用刚找到的密码保护的结构/窗口。" & _
ALLCLEAR & AUTHORS & VERSION & REPBACK
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
MsgBox MSGNOPWORDS2, vbInformation, HEADER
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, vbInformation, HEADER
End Sub

Excel解除'工作表保护密码',并复原密码设定的更多相关文章

  1. Excel—“撤销工作表保护密码”的破解并获取原始密码

    您是否遇到过这样的情况:您用Excel编制的报表.表格.程序等,在单元格中设置了公式.函数等,为了防止其他人修改您的设置或者防止您自己无意中修改,您可能会使用Excel的工作表保护功能,但时间久了保护 ...

  2. 转:Excel—“撤销工作表保护密码”的破解并获取原始密码

    在日常工作中,您是否遇到过这样的情况:您用Excel编制的报表.表格.程序等,在单元格中设置了公式.函数等,为了防止其他人修改您的设置或者防止您自己无意中修改,您可能会使用Excel的工作表保护功能, ...

  3. Excel破解工作表保护

    宏运行 Public Sub Password_cracking() Const DBLSPACE As String = vbNewLine & vbNewLine Const AUTHOR ...

  4. EXCEL密码破解/破解工作表保护密码

    网上有很多这个代码,但很多朋友并不太了解如何运用在此做了一些整理,希望对大家有所帮助! 注:很多时候会因为忘记密码丢失重要EXCEL文件而烦恼,这份代码就能帮你找回,仅仅出之这个初衷,如因为这个代码让 ...

  5. Excel工作表保护的密码破解与清除...假装自己破解密码系列?

    有一次我女朋友让我帮忙解一个excel表格的保护密码,然后~用了宏 网上下载来的Excel经常会有工作表保护,也就是无法修改,妄图做任何修改的时候你就会看见这句话: 您试图更改的单元格或图表位于受保护 ...

  6. 破解EXCEL工作表保护密码

    神技 破解EXCEL工作表保护密码 http://www.mr-wu.cn/crack-excel-workbook-protection/ 我们可以通过新建工作本,来创建一个新的工作本来创造新的宏而 ...

  7. [转]Excel 工作表保护密码移除

    http://blog.sina.com.cn/s/blog_4cf096b80100rhfb.html Public Sub 工作表保护密码() Const DBLSPACE As String = ...

  8. 方法一破解:Excel工作表保护密码

    在excel2016中实测验证过有效 在Excel中,为了保护自已的工作表不被修改,我们可以添加保护密码. 操作步骤: 1.把Excel文件的扩展名xlsx修改为Rar.瞬间Excel文件变成了压缩包 ...

  9. excel之工作表工作簿保护暴力撤销

    excal之工作表工作簿保护暴力撤销 excel可以在审阅中设置工作表.工作簿的密码保护,但是当密码忘记或一些特殊情况下需要进行操作. 1.工作簿保护撤销 步骤一:将需要破解的excal文件后缀名改为 ...

随机推荐

  1. java对象转化为json字符串并传到前台

    package cc.util; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import ...

  2. @loj - 2090@ 「ZJOI2016」旅行者

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 小 Y 来到了一个新的城市旅行.她发现了这个城市的布局是网格状的 ...

  3. Flask学习之八 关注、联系人和好友

    英文博客地址:http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-viii-followers-contacts-and- ...

  4. jQuery学习笔记之可见性过滤选择器

    可见性过滤选择器是根据元素的可见和不可见状态来选择相应的元素. 显示隐藏的例子: <!DOCTYPE html> <html> <head> <script ...

  5. Android中后台线程如何与UI线程交互

    我想关于这个话题已经有很多前辈讨论过了.今天算是一次学习总结吧. 在android的设计思想中,为了确保用户顺滑的操作体验.一些耗时的任务不能够在UI线程中运行,像访问网络就属于这类任务.因此我们必须 ...

  6. tensorflow 卷积层

    TensorFlow 卷积层   让我们看下如何在 TensorFlow 里面实现 CNN. TensorFlow 提供了 tf.nn.conv2d() 和 tf.nn.bias_add() 函数来创 ...

  7. .net core 控制台下使用HttpClientFactory封装

    HttpClientFactory封装,如有错误请指出,谢谢! using System; using System.Collections.Generic; using System.Net.Htt ...

  8. jq添加插入删除元素

    https://www.cnblogs.com/sandraryan/ append() - 在被选元素的结尾插入内容 <body> <div class="wrap&qu ...

  9. 4-2 setting中一定要将ROBOTSTXT_OBEY = False的注释去掉

    # Obey robots.txt rules##默认遵循robots协议的,默认去读取每个网站上的robots协议ROBOTSTXT_OBEY = False

  10. H5 拖拽元素

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...