news 2026/4/16 1:52:13

Excel 撤销工作表保护密码

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Excel 撤销工作表保护密码

1、打开您需要破解保护密码的Excel文件;
2、依次点击菜单栏上的工具---宏----录制新宏,输入宏名字如:aa;
3、停止录制(这样得到一个空宏);
4、依次点击菜单栏上的工具---宏----宏,选aa,点编辑按钮;
5、删除窗口中的所有字符(只有几个),替换为下面的内容;

复制一下代码:

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 & _ "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 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

6、关闭编辑窗口;
7、依次点击菜单栏上的工具---宏-----宏,选AllInternalPasswords,运行,确定两次;

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 1:50:11

周立功Zcanpro使用

一、基础: 周立功是发信号的工具 dbc和矩阵都是里面加载的 目的:用来测车机 二、前提条件: 1、是有周立功硬件设备,接can线 2、电脑下载了对应驱动 驱动链接:https://manual.zlg.cn/web/#/146 Zcanpro下载&…

作者头像 李华
网站建设 2026/4/16 1:49:13

10步搞定服务器部署全流程

(买服务器 → FinalShell 连接 → 环境安装 → 前后端部署 → 上线访问) 本地环境:JDK17 Maven3.9 Node22一次做完,直接能用! 一、第一步:买服务器(阿里云 / 腾讯云都行) 1. 选配…

作者头像 李华
网站建设 2026/4/16 1:41:15

剪映专业版教程:制作水晶立方体动画效果

前言 今天教大家一个水晶立方体动画效果。这种效果让图片以立方体旋转的方式展示,配合荧光流动和花瓣环绕特效,适合古风相册、人物展示、创意短片等场景。 效果预览:图片以立方体组合动画旋转展示,每张图切换时有花瓣环绕特效&a…

作者头像 李华
网站建设 2026/4/16 1:40:17

优化nnUNet训练效率:自定义Epoch与多显卡配置实战

1. 为什么需要优化nnUNet训练效率? 第一次用nnUNet做医学图像分割时,我盯着屏幕上显示的"Epoch 1/1000"直接懵了——这得训练到猴年马月?后来发现团队里8块显卡的服务器,每次训练居然只用1块卡,其他7块都在摸…

作者头像 李华