Excel撤銷工作表保護(hù)密碼圖文教程介紹

我們經(jīng)常使用Excel的工作表保護(hù)功能,將工作表用密碼保護(hù)起來(lái),以防別人操作時(shí)進(jìn)行修改,但是這樣一來(lái)有可能會(huì)無(wú)法進(jìn)行一些操作(如輸入公式等),時(shí)間久了保護(hù)的密碼也有可能忘記了,這該怎么辦呢?只要按照以下步驟操作,Excel工作表保護(hù)密碼瞬間即破!
1、打開(kāi)您需要破解保護(hù)密碼的Excel文件;
2、依次點(diǎn)擊菜單欄上的工具---宏----錄制新宏,輸入宏名字如:aa;
3、停止錄制(這樣得到一個(gè)空宏);
4、依次點(diǎn)擊菜單欄上的工具---宏----宏,選aa,點(diǎn)編輯按鈕;
5、刪除窗口中的所有字符(只有幾個(gè)),替換為下面的內(nèi)容;
從橫線下開(kā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、依次點(diǎn)擊菜單欄上的工具---宏-----宏,選AllInternalPasswords,運(yùn)行,確定兩次;
相關(guān)文章
陽(yáng)歷/農(nóng)歷轉(zhuǎn)換對(duì)照表怎么做? Excel制作日歷表/萬(wàn)年歷的最終版
想要制作陽(yáng)歷/農(nóng)歷轉(zhuǎn)換對(duì)照表,,通過(guò)這個(gè)對(duì)照表,你只需知道陽(yáng)歷日期,就可以快速準(zhǔn)確的找到對(duì)應(yīng)的農(nóng)歷日期,下面我們就來(lái)看看詳細(xì)制作方法2025-04-10三分鐘就搞定! Excel快速制作一個(gè)日歷表/萬(wàn)年歷的技巧
工作上需要制作一個(gè)日歷表/萬(wàn)年歷,該怎么制作呢?我們需要使用三個(gè)excel函數(shù)來(lái)實(shí)現(xiàn),詳細(xì)請(qǐng)看下文介紹2025-04-10這個(gè)函數(shù)公式簡(jiǎn)直太強(qiáng)了! excel按權(quán)重求和計(jì)算的技巧
Excel中有一個(gè)功能非常強(qiáng)大的函數(shù),它就是SUMPRODUCT函數(shù),既能求和、計(jì)數(shù)、權(quán)重計(jì)算,還能排名等,今天我們就來(lái)看看Excel根據(jù)權(quán)重求和的技巧2025-04-10tocol函數(shù)哪個(gè)版本能用? excel中tocol函數(shù)的兩種高級(jí)用法
TOCOL函數(shù)公式非常強(qiáng)大,值得一學(xué),從字面意義可以理解出來(lái),它是將數(shù)據(jù)轉(zhuǎn)換成一列的,今天分享TOCOL函數(shù)的2種高級(jí)用法2025-04-10Excel隱藏行和折疊行有什么不同? 隱藏行和折疊使用方法和區(qū)別介紹
excel表格進(jìn)行操作的時(shí)候,發(fā)現(xiàn)有隱藏和和折疊行,看上去效果一樣,都隱藏了,但是兩者是有很大區(qū)別的,詳細(xì)請(qǐng)看下文介紹2025-03-21Excel工齡計(jì)算不再愁! Excel隱藏函數(shù)DATEDIF輕松計(jì)算精確到天級(jí)的工齡
在日常工作中,我們經(jīng)常需要計(jì)算員工的工齡,以便進(jìn)行人事管理、薪資調(diào)整等工作,本文將詳細(xì)介紹如何在Excel表格中計(jì)算工齡,并提供多種實(shí)用方法供您選擇2025-03-13快速提高工作效率! Excel高手的8個(gè)技巧勸你學(xué)學(xué)
Excel數(shù)據(jù)處理遇到的問(wèn)題,99%都是由于奇葩的數(shù)據(jù)格式造成的,今天跟大家整理了幾個(gè)Excel表格構(gòu)建的規(guī)則,先不要問(wèn)為什么,照著做就對(duì)了2025-03-06Excel透視表1月到12月不能排序怎么辦? 數(shù)據(jù)透視表日期無(wú)法排序解決方法
如圖對(duì)數(shù)據(jù)透視表日期進(jìn)行升序排序后,仍不是我們想要的結(jié)果,有可能月份是文本,不能排列,下面我們就來(lái)看看詳細(xì)解決辦法2025-03-06財(cái)務(wù)審計(jì)必會(huì)! 2分鐘搞定用excel做賬齡劃分的技巧
首先咱們得明確一下賬齡的概念,簡(jiǎn)單來(lái)說(shuō),賬齡就是某個(gè)賬戶的余額從產(chǎn)生到現(xiàn)在的時(shí)間長(zhǎng)度,比如,一年以內(nèi)的賬齡就是那些在過(guò)去一年內(nèi)產(chǎn)生的債權(quán)或債務(wù),下面我們就來(lái)看看2025-03-06實(shí)現(xiàn)辦公自動(dòng)化! DeepSeek搭配Excel制作自定義按鈕的技巧
DeepSeek生成想要的代碼很方便,如果將生成的代碼放到excel中作為vba代碼使用,豈不是能實(shí)現(xiàn)辦公自動(dòng)化?下面我們就來(lái)看看實(shí)現(xiàn)方法2025-03-05