Excel撤銷工作表保護密碼圖文教程介紹
我們經(jīng)常使用Excel的工作表保護功能,將工作表用密碼保護起來,以防別人操作時進行修改,但是這樣一來有可能會無法進行一些操作(如輸入公式等),時間久了保護的密碼也有可能忘記了,這該怎么辦呢?只要按照以下步驟操作,Excel工作表保護密碼瞬間即破!
1、打開您需要破解保護密碼的Excel文件;
2、依次點擊菜單欄上的工具---宏----錄制新宏,輸入宏名字如:aa;

3、停止錄制(這樣得到一個空宏);

4、依次點擊菜單欄上的工具---宏----宏,選aa,點編輯按鈕;


5、刪除窗口中的所有字符(只有幾個),替換為下面的內(nèi)容;
從橫線下開始復(fù)制-----------------------------
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
----------------------
復(fù)制到橫線以上

6、關(guān)閉編輯窗口;
7、依次點擊菜單欄上的工具---宏-----宏,選AllInternalPasswords,運行,確定兩次;


相關(guān)文章

excel中使用VBA提取指定文件夾中指定擴展名的所有文件名的技巧
項目結(jié)束后,要把相關(guān)文件的存放位置整理成清單交給同事或領(lǐng)導(dǎo),提取文件夾名稱和路徑后,能讓接收方精準找到對應(yīng)文件,減少溝通成本,確保工作銜接順暢,下面我們就來看看2026-02-26
不使用VBA! excel表格提取指定文件夾的所有文件名的技巧
Excel提供了一個名為FILES的宏表函數(shù),可以直接在Excel中批量提取指定文件夾下的文件名,這種方法適合有一定Excel基礎(chǔ)的用戶,操作相對簡單2026-02-26
excel表格中數(shù)據(jù)很多,也存在很多空白單元格,想要統(tǒng)計空白單元格,該怎么操作呢?下面我們就通過公式快速實現(xiàn)2026-02-26
你還在逐個隱藏和取消隱藏工作表嗎? Excel快速批量取消隱藏工作表技巧
在制作Microsoft Excel工作簿時,一般情況下很少會刪除源數(shù)據(jù)所在的Excel工作表,通常的操作辦法就是將暫時不用的Excel工作表隱藏起來,下面我們就來看看 Excel批量隱藏和2026-02-09
excel表格中銷售數(shù)據(jù)擰麻花怎么辦? 教你一招輕松搞定按顏色求和計數(shù)的
職場工作中經(jīng)常會遇到帶有設(shè)置單元格顏色的表格數(shù)據(jù)需要求和,或者按字體顏色和表格顏色求和,那么如何來進行計算呢,詳細請看下文介紹2026-02-09
另類圖例玫瑰圖! excel創(chuàng)意玫瑰圖的制作方法
excel表格中的數(shù)據(jù)想要制作成創(chuàng)意圖表,該怎么制作玫瑰圖呢?下面我們就來看看excel玫瑰圖的制作方法2026-02-09
單元格還可以按需自定義設(shè)置! Excel單元格格式自定義技巧
excel表格中可以按需自定義設(shè)置,該怎么設(shè)置呢?下面我們就來根據(jù)實際的例子來看看詳細設(shè)置方法2026-01-19
Excel規(guī)劃求解根據(jù)多個變量尋求最佳方案
規(guī)劃求解是一個相對較復(fù)雜的分析工具,但是在對數(shù)據(jù)的預(yù)測分析上,可謂功能強大,下面我們就來舉例看看2026-01-15
“規(guī)劃求解”是一組命令的組成部分,借助“規(guī)劃求解”,可求得工作表上某個單元格中公式的最優(yōu)(最大或最小)值,并受工作表上其他公式單元格的值的約束或限制,詳細請看下2026-01-15
輕松掌握基礎(chǔ)功能! 給excel初學(xué)者的16個VBA基本代碼
歡迎來到VBA的世界!這里有一些簡單的代碼示例,幫助你快速理解VBA的基礎(chǔ)概念,通過這些代碼,你可以逐步掌握VBA的精髓,為更復(fù)雜的任務(wù)打下基礎(chǔ)2026-01-13

