本文目录一览:
Excel vba 忘了密码 怎么办
1、首先,如果文件格式是Excel 2010版(.xslm),需要先打开Excel文件,另存为2003版格式(.xls)。
2、然后用普通的文本编辑器(这里用的是NotePad++)打开这个文件,注意文件类型选“所有文件”。
3、然后在文件里查找“DPB",把它改成“DPx”。注意大小写。
4、保存修改。然后用Excel重新打开这个文件。你会遇到一些错误,忽略它们。
5、然后进入Excel的“开发工具”面板,选择“Visual Basic”。又会有一系列错误,忽略它们,知道VBA项目打开。
6、这时候已经可以查看VBA代码了。如果想改变甚至去除原来的密码,继续看。从VBA编辑器的“工具”菜单,选择“VBA工程属性...“,然后转到”保护“面板。
7、在密码框中输入新密码。保存VBA文件和Excel文件,关闭Excel。重新启动Excel并重新打开这个文件,然后进入"开发工具"-"Visual Basic",会提示输入密码。输入新设置的密码。
8、然后回到VBA编辑器的“工具”-"VBA工程属性"-“保护”,去掉密码以及保护选项前面的标记。最后保存文件即可。
如何破解vba工程密码
网上办法很多,试试下面的代码:
'移除VBA编码保护
Sub MoveProtect()
Dim FileName As String
FileName = Application.GetOpenFilename("Excel文件(*.xls *.xla),*.xls;*.xla", , "VBA破解")
If FileName = CStr(False) Then
Exit Sub
Else
VBAPassword FileName, False
End If
End Sub
'设置VBA编码保护
Sub SetProtect()
Dim FileName As String
FileName = Application.GetOpenFilename("Excel文件(*.xls *.xla),*.xls;*.xla", , "VBA破解")
If FileName = CStr(False) Then
Exit Sub
Else
VBAPassword FileName, True
End If
End Sub
Private Function VBAPassword(FileName As String, Optional Protect As Boolean = False)
If Dir(FileName) = "" Then
Exit Function
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 Function
End If
If Protect = False Then
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, "提示"
Else
Dim MMs As String * 5
MMs = "DPB="""
Put #1, CMGs, MMs
MsgBox "对文件特殊加密成功......", 32, "提示"
End If
Close #1
End Function
原文地址:
这段代码很强的...!!
VBA工程密码忘记怎么办quchu?
如果要查看别人的有密码保护的VBA代码,可使用此程序。使用方法:新建Excel工作簿, 打开VBA编辑器,新建一模块 ,复制以下代码。然后运行MoveProtect程序。运行过程中会出现提示,以指示要破解的文件路径和名称。被破解的文件一定是关闭状态的。
Sub MoveProtect()
Dim FileName As String
FileName = Application.GetOpenFilename_
("Excel文件(*.xls *.xla),*.xls;*.xla", , "VBA破解")
If FileName = CStr(False) Then
Exit Sub
Else
VBAPassword FileName, False ' 引用下面的自定义函数
End If
End Sub
Private Function VBAPassword(FileName As String, Optional Protect As Boolean = False)
If Dir(FileName) = "" Then
Exit Function
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 Function
End If If Protect = False Then
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, "提示"
Else
Dim MMs As String * 5
MMs = "DPB="""
Put #1, CMGs, MMs
MsgBox "对文件特殊加密成功......", 32, "提示"
End If
Close #1
End Function
所谓破解只是清除VBA密码,并不是真正的破解。