我的一个EXCEL表格设置了密码,忘记密码打不开,怎么办?
答案:2 悬赏:50 手机版
解决时间 2021-12-18 09:23
- 提问者网友:姑娘长的好罪过
- 2021-12-17 15:04
是wps系统
最佳答案
- 五星知识达人网友:何以畏孤独
- 2021-12-17 15:36
开放工具--录制宏--马上停止录制--然后点击宏选择刚才录制的宏点击编辑清空里面的内容,复制下面的内容进去,然后运行宏就好了
Private Sub VBAPassword() '你要解保护的Excel文件路径
Filename = Application.GetOpenFilename("Excel文件(*.xls & *.xla & *.xlt),*.xls;*.xla;*.xlt", , "VBA破解")
If Dir(Filename) = "" Then
MsgBox "没找到相关文件,清重新设置。"
Exit Sub
Else
FileCopy Filename, Filename & ".bak" '备份文件。
End If
Dim GetData As String * 5
Open Filename For Binary As #1
Dim CMGs As Long
Dim DPBo As Long
For i = 1 To LOF(1)
Get #1, i, GetData
If GetData = "CMG=""" Then CMGs = i
If GetData = "[Host" Then DPBo = i - 2: Exit For
Next
If CMGs = 0 Then
MsgBox "请先对VBA编码设置一个保护密码...", 32, "提示"
Exit Sub
End If
Dim St As String * 2
Dim s20 As String * 1
'取得一个0D0A十六进制字串
Get #1, CMGs - 2, St
'取得一个20十六制字串
Get #1, DPBo + 16, s20
'替换加密部份机码
For i = CMGs To DPBo Step 2
Put #1, i, St
Next
'加入不配对符号
If (DPBo - CMGs) Mod 2 <> 0 Then
Put #1, DPBo + 1, s20
End If
MsgBox "文件解密成功......", 32, "提示"
Close #1
End Sub
Private Sub VBAPassword() '你要解保护的Excel文件路径
Filename = Application.GetOpenFilename("Excel文件(*.xls & *.xla & *.xlt),*.xls;*.xla;*.xlt", , "VBA破解")
If Dir(Filename) = "" Then
MsgBox "没找到相关文件,清重新设置。"
Exit Sub
Else
FileCopy Filename, Filename & ".bak" '备份文件。
End If
Dim GetData As String * 5
Open Filename For Binary As #1
Dim CMGs As Long
Dim DPBo As Long
For i = 1 To LOF(1)
Get #1, i, GetData
If GetData = "CMG=""" Then CMGs = i
If GetData = "[Host" Then DPBo = i - 2: Exit For
Next
If CMGs = 0 Then
MsgBox "请先对VBA编码设置一个保护密码...", 32, "提示"
Exit Sub
End If
Dim St As String * 2
Dim s20 As String * 1
'取得一个0D0A十六进制字串
Get #1, CMGs - 2, St
'取得一个20十六制字串
Get #1, DPBo + 16, s20
'替换加密部份机码
For i = CMGs To DPBo Step 2
Put #1, i, St
Next
'加入不配对符号
If (DPBo - CMGs) Mod 2 <> 0 Then
Put #1, DPBo + 1, s20
End If
MsgBox "文件解密成功......", 32, "提示"
Close #1
End Sub
全部回答
- 1楼网友:渡鹤影
- 2021-12-17 17:06
如果表格被保护了,即开着,但是不能改动,且密码是7位数以内的数字,如下操作:
在excel窗口,同时按键盘的alt和f11,点菜单上的插入,模块,在右边新出来的窗口粘贴一下代码:
sub crackprotect()
dim i as long
i = 1
line2:
on error goto line1
do while true
activeworkbook.unprotect i
msgbox "password is" & i
exit sub
loop
line1:
i = i + 1
resume line2
end sub
然后按f5运行此宏。
如果有字母,稍微复杂些,道理是一样的。太长的密码,基本解不开了。
如果excel文件的打开密码忘记了,且密码是7位数以内的数字,可用以下步骤解开:
新开一excel,同时按alt和f11,进入vba界面,点菜单上的插入,模块,在新出来的窗口粘贴一下代码:
sub crack()
dim i as long
dim filename as string
application.screenupdating = false
i = 1
filename = application.getopenfilename("excel文件(*.xls & *.xlsx),*.xls;*.xlsx", , "vba破解")
filename = right(filename, len(filename) - instrrev(filename, "\"))
line2:
on error goto line1
do while true
workbooks.open filename, , , , i
workbooks(filename).close 0
msgbox "password is " & i
exit sub
loop
line1:
i = i + 1
resume line2
application.screenupdating = true
end sub
然后按f5运行此宏
如果有字母,稍微复杂些,道理是类似的。太长的密码,基本解不开了。
若果还有读写密码,且与打开密码一样,将workbooks.open filename, , , , i 改为workbooks.open filename, , , , i, i
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
正方形一边上任一点到这个正方形两条对角线的 |
阴历怎么看 ? |