如何从vb宏取消保护我的VB项目?我找到了这段代码:
Sub UnprotectVBProject(ByRef WB As Workbook, ByVal Password As String)
Dim VBProj As Object
Set VBProj = WB.VBProject
Application.ScreenUpdating = False
'Ne peut procéder si le projet est non-protégé.
If VBProj.Protection <> 1 Then Exit Sub
Set Application.VBE.ActiveVBProject = VBProj
'Utilisation de "SendKeys" Pour envoyer le mot de passe.
SendKeys Password & "~"
SendKeys "~"
'MsgBox "Après Mot de passe"
Application.VBE.CommandBars(1).FindControl(ID:=2578, recursive:=True).Execute
Application.Wait (Now + TimeValue("0:00:1"))
End Sub
Run Code Online (Sandbox Code Playgroud)
但是此解决方案不适用于Excel 2007.它在我的IDE中显示验证的窗口和打印密码.
然后,我的目标是取消保护我的VBproject而不显示此窗口.
谢谢你的帮助.
由于程序的变化,我需要更新excel宏中的代码.设计它的人两年前离开了公司.在尝试恢复它时,我发现宏项目受密码保护.我一直在寻找一个大约两个小时的解决方法,我最好的选择是在这个板上进行较早的讨论: 有没有办法破解Excel VBA项目的密码?
引用示例的每个人都使用以下格式:
CMG="..."
DPB="..."
GC="..."
Run Code Online (Sandbox Code Playgroud)
现在这是我的问题.当我在十六进制编辑器中加载文件(它是.xla)时,我看到DPB字符串被切成两部分,而不是相等的部分.在这两部分之间,我有大量的其他代码和经典的乱码.因此,如果我想用我的其他简单密码保护的虚拟宏替换原始字符串,我不知道之前要放置的字符串的哪个部分,以及之后的部分.
这是它的样子:
VersionCompatible32="393222000"
CMG="B9BB1563196319671D671D"
DPB="3C3E906990F1ADF1AD0E53F2ADA57F5232827697A774ECD098BDyNone<bh:9f>y<bh:10><bh:00>
Run Code Online (Sandbox Code Playgroud)
[然后是大量不相关的数据](注意'DyNone',不知道'D'是字符串的一部分,还是'DyNone'的一部分)
<bh:00>uf_GetSQL<bh:03><bh:00><bh:00><bh:02><bh:09><bh:00><bh:00><bh:00>uf_VarSQL<bh:05><bh:00><bh:00><bh:02>86B8588665A975BB5916D296"
GC="BFBD13EA15EE99EF99EF99"
[Host Extender Info]
&H00000001={3832D640-CF90-11CF-8E43-00A0C911005A};VBE;&H00000000
Run Code Online (Sandbox Code Playgroud)
这两个部分大约是文件的一半,但距离彼此还有相当大的距离.
我尝试在第一部分之后移动第二部分,如下所示:
VersionCompatible32="393222000"
CMG="B9BB1563196319671D671D"
DPB="3C3E906990F1ADF1AD0E53F2ADA57F5232827697A774ECD098B86B8588665A975BB5916D296"
GC="BFBD13EA15EE99EF99EF99"
DyNone<bh:9f>
Run Code Online (Sandbox Code Playgroud)
但后来我收到了"不可读的内容"错误,项目就不见了.此外,当您的替换字符串比原始字符串短时,上述主题提到了解决方案.在我的情况下,cmg-string是2长,dpb-string更长而不是更短...所以这是第二个问题.
我意识到我基本上要求帮助我"破解"一个文件.如果不允许这样的问题,我会理解的.在那种情况下,我知道我的新秋季项目.
我发现这个VBA代码在不知道密码的情况下解锁工作表:
Sub PasswordBreaker()
Dim i As Integer, j As Integer, k As Integer
Dim l As Integer, m As Integer, n As Integer
Dim i1 As Integer, i2 As Integer, i3 As Integer
Dim i4 As Integer, i5 As Integer, i6 As Integer
On Error Resume Next
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 = …Run Code Online (Sandbox Code Playgroud) 我尝试编写一个类似于我用来破解Excel工作表密码的代码的vba密码破解程序代码但我不确定我是否正确执行 - 当我尝试此代码时它提示我输入密码但没有输入密码到文本输入框.
请告诉我我做错了什么.
谢谢
Sub testmacro()
Dim password
Dim a, b, c, d, e, f, g, h, i, j, k, l
SendKeys "^r"
SendKeys "{PGUP}"
For a = 65 To 66
For b = 65 To 66
For c = 65 To 66
For d = 65 To 66
For e = 65 To 66
For f = 65 To 66
For g = 65 To 66
For h = 65 To 66
For i = 65 …Run Code Online (Sandbox Code Playgroud)