搜档网
当前位置:搜档网 › Excel破解宏代码

Excel破解宏代码

Excel破解宏代码

Excel工作表保护密码破解

方法:

1\打开文件

2\工具---宏----录制新宏---输入名字如:aa

3\停止录制(这样得到一个空宏)

4\工具---宏----宏,选aa,点编辑按钮

5\删除窗口中的所有字符(只有几个),替换为下面的内容:(复制吧)

6\关闭编辑窗口

7\工具---宏-----宏,选AllInternalPasswords,运行,确定两次,等2分钟,再确定.OK,密码完全被你看见了!!

内容如下:

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 & "SA VE 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 SubEXCEL工程密破解,以下方法十分有效的帮你打开VBA工程密码保护的工程,教你破解VBA工程密码,解除VBA工程密码保护下的EXCEL文档,破解EXCEL原来如此简单.--------------在办公中我们常看到许多用宏(VBA)编写的EXCEL表格,而这些表格就如同一个数据库,我们可以选取或查询很多的数据,一般的这些数据是存放在一个隐藏的工作表中的,那么要如何显示这个隐藏的工作表呢?我们可以打开宏编辑器(ALT+F11),再安CTRL+R打开专案,这时弹出窗会有所有的这个EXCEL的工用表,这时你就可以看看那些是被隐藏的了,很多时候打开是需要密码的,用以下方法解密后,再将解密后文件打开,依同样方法在工作表标签中右键>>检视程式码>>复制以下代码>>按F8执行Private Sub CommandButton1_Click()

Worksheets("这里为你要显示的工作表名称").Visible = True End Sub关于破解EXCEL

VBA工程密码的方法,以下代码非常有效,首先建一新EXCEL文件,在工作表标签处右点>>检视程式码

>>复制以下代码>>按F8执行

在弹出窗中选你要你破解工程密码的EXCEL文件

>>再按F5执行即可.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

相关主题