当前位置: 首页 > news >正文

Excel“取消工作表保护”忘记密码并恢复原始密码

文章目录

  • 1.前言
  • 2.破解步骤
  • 3. 最终效果
  • 4.参考文献

1.前言

有时候别人发来的Excel中有些表格不能编辑,提示如下,但是又不知道原始密码
在这里插入图片描述

2.破解步骤

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

2、依次点击菜单栏上的视图—宏----录制宏,输入宏名字如:test;

在这里插入图片描述
在这里插入图片描述

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

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

在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述
替换内容见下:

Option ExplicitPublic 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 & _
"Adapted from Bob McCormick base code by" & _
"Norman Harker and JE McGimpsey"
Const HEADER As String = "AllInternalPasswords User Message"
Const VERSION As String = DBLSPACE & "Version 1.1.1 2003-Apr-04"
Const REPBACK As String = DBLSPACE & "Please report failure " & _
"to the microsoft.public.excel.programming newsgroup."
Const ALLCLEAR As String = DBLSPACE & "The workbook should " & _
"now be free of all password protection, so make sure you:" & _
DBLSPACE & "SAVE IT NOW!" & DBLSPACE & "and also" & _
DBLSPACE & "BACKUP!, BACKUP!!, BACKUP!!!" & _
DBLSPACE & "Also, remember that the password was " & _
"put there for a reason. Don't stuff up crucial formulas " & _
"or data." & DBLSPACE & "Access and use of some data " & _
"may be an offense. If in doubt, don't."
Const MSGNOPWORDS1 As String = "There were no passwords on " & _
"sheets, or workbook structure or windows." & AUTHORS & VERSION
Const MSGNOPWORDS2 As String = "There was no protection to " & _
"workbook structure or windows." & DBLSPACE & _
"Proceeding to unprotect sheets." & AUTHORS & VERSION
Const MSGTAKETIME As String = "After pressing OK button this " & _
"will take some time." & DBLSPACE & "Amount of time " & _
"depends on how many different passwords, the " & _
"passwords, and your computer's specification." & DBLSPACE & _
"Just be patient! Make me a coffee!" & AUTHORS & VERSION
Const MSGPWORDFOUND1 As String = "You had a Worksheet " & _
"Structure or Windows Password set." & DBLSPACE & _
"The password found was: " & DBLSPACE & "$$" & DBLSPACE & _
"Note it down for potential future use in other workbooks by " & _
"the same person who set this password." & DBLSPACE & _
"Now to check and clear other passwords." & AUTHORS & VERSION
Const MSGPWORDFOUND2 As String = "You had a Worksheet " & _
"password set." & DBLSPACE & "The password found was: " & _
DBLSPACE & "$$" & DBLSPACE & "Note it down for potential " & _
"future use in other workbooks by same person who " & _
"set this password." & DBLSPACE & "Now to check and clear " & _
"other passwords." & AUTHORS & VERSION
Const MSGONLYONE As String = "Only structure / windows " & _
"protected with the password that was just found." & _
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 BooleanApplication.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

6、保存后,关闭编辑窗口;

在这里插入图片描述

7、依次点击菜单栏上的视图—宏-----宏,选AllInternalPasswords,点击“执行”按钮;

在这里插入图片描述

8.一直点击“确定”,然后等待,中间可能会有程序无响应的情况,不用理会,耐心多等待一会儿。

在这里插入图片描述
在这里插入图片描述

9.然后就可以得到破解后的密码啦,且会自动取消Excel文档的工作表保护,直接保存文件就可以

在这里插入图片描述
在这里插入图片描述

3. 最终效果

表格可以编辑了。
在这里插入图片描述

在这里插入图片描述

4.参考文献

https://blog.csdn.net/xujiangdong1992/article/details/76549062

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【数学建模】优化模型——两辆平板车装货问题
  • linux应用编程--网络编程(socket编程基础)
  • 企业为什么需要安装加密软件
  • PostgreSQL的postgres主进程
  • 海外媒体投稿:怎样在法国媒体发稿宣传中获得成功
  • linux debian12 离线安装jdk1.8 (解决root和普通用户不能同时拥有java)
  • 【从Qwen2,Apple Intelligence Foundation,Gemma 2,Llama 3.1看大模型的性能提升之路】
  • Java中hashcode()和equals()关系
  • Python爬虫——简单网页抓取(实战案例)小白篇
  • 《Python requests 库详解》
  • [python][代码]Python删除文件方法
  • 嵌入式软件--PCB DAY 2
  • 基于web框架的协同过滤的美食推荐系统【数据爬虫、管理系统、数据可更新、样式可调整】
  • 通过https方式访问内网IP
  • 01. 真正实现一键自动化生成pdf报告
  • 【391天】每日项目总结系列128(2018.03.03)
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • Docker入门(二) - Dockerfile
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • IOS评论框不贴底(ios12新bug)
  • Laravel 实践之路: 数据库迁移与数据填充
  • MySQL-事务管理(基础)
  • Python语法速览与机器学习开发环境搭建
  • 百度小程序遇到的问题
  • 官方解决所有 npm 全局安装权限问题
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 如何用vue打造一个移动端音乐播放器
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 移动端解决方案学习记录
  • 译有关态射的一切
  • 用 Swift 编写面向协议的视图
  • zabbix3.2监控linux磁盘IO
  • #Datawhale AI夏令营第4期#AIGC方向 文生图 Task2
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (bean配置类的注解开发)学习Spring的第十三天
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (待修改)PyG安装步骤
  • (二) 初入MySQL 【数据库管理】
  • (附源码)ssm高校志愿者服务系统 毕业设计 011648
  • (规划)24届春招和25届暑假实习路线准备规划
  • (理论篇)httpmoudle和httphandler一览
  • (四)stm32之通信协议
  • (五)MySQL的备份及恢复
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (转)重识new
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .htaccess配置重写url引擎
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .net core 外观者设计模式 实现,多种支付选择
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .Net IE10 _doPostBack 未定义
  • .net Stream篇(六)