方法一
将你要破解的Excel文件关闭,另存为2003版格式(.xls),
然后新建一个Excel文件,打开新建的这个Excel,按下alt+F11,打开VBA 界面,新建一个模块,
如图所示
将代码复制到这个模块中,代码如下:
Private Sub VBAPassword() '你要解保护的Excel文件路径(把要破解的excel保存为2003-97 xls)
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
点击运行,打开第一步另存为2003版格式的Excel表格即可。
方法二
解除VBA查看密码
首先,如果文件格式是(.xslm),需要先打开Excel文件,另存为2003版格式(.xls),保存过程中如有弹出提示,直接点击确认即可。
然后点击选中文件,单击右键打开方式选择使用记事本打开,还可以使用文本编辑器(我用的是NotePad++)打开这个文件。
然后在文件里查找“DPB”,把它改成“DPx”。注意大小写。(这个是重点)
保存修改。然后用Excel重新打开这个文件。你会遇到一些错误,忽略它们。
然后进入Excel的“开发工具”面板,选择“Visual Basic”。又会有一系列错误,忽略它们,直到VBA项目打开。
这时候已经可以查看VBA代码了。
修改VBA密码
如果想改变甚至去除原来的密码,继续看。
从VBA编辑器的“工具”菜单,选择“VBA工程属性…“,然后转到”保护“面板。
在密码框中输入新密码。(即便你想去除原有密码,也必须先设置一个新密码,然后再按后面的步骤去掉这个密码。)
保存VBA文件和Excel文件,关闭Excel。
重新启动Excel并重新打开这个文件,然后进入”开发工具”->”Visual Basic”,会提示输入密码。输入你新设置的密码。
然后回到VBA编辑器的“工具”->”VBA工程属性”->“保护”,去掉密码以及保护选项前面的标记
最后大功告成,下次可以直接打开查看VBA工程。
学会了