以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何解锁EXCEL工作簿密码?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=91355)

--  作者:发财
--  发布时间:2016/10/9 9:14:00
--  如何解锁EXCEL工作簿密码?
如何解锁EXCEL工作簿密码?
--  作者:发财
--  发布时间:2016/10/9 9:27:00
--  
关闭你的文件,新开一Excel,同时按Alt和F11,进入VBA界面,右键点左上窗口的Thisworkbook,插入,模块,在右边出来的窗口中粘贴如下代码:
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

然后在此界面,把光标移到第一行,按F5,运行MoveProtect,在打开窗口中选择你说的文件,完成后,该文件的宏就没密码了。

--  作者:发财
--  发布时间:2016/10/9 9:29:00
--  
If CMGs = 0 Then
MsgBox "请先对VBA编码设置一个保护密码...", 32, "提示"
Exit Function
End If
按F5提示"请先对VBA编码设置一个保护密码...", 32, "提示"
老师,应如何解决,或有FOXTABLE的办法呢?

--  作者:有点蓝
--  发布时间:2016/10/9 10:16:00
--  
参考:http://www.foxtable.com/webhelp/scr/2121.htm

  • Protect

    保护工作表。
    Protect方法可以指定保护密码参数,该密码为一个区分大小写的字符串。如果省略本参数,不用密码就可以取消对该工作表的保护。如:

    Dim App As New MSExcel.Application
    Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("D:\\Report.xls")
    Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets("同期对比")
    Ws.Protect(Password:="hhh")  \'以密码保护
    Wb.Save
    App.Quit

    如果直接写为:Ws.Protect,则无需密码就能取消保护。

    除此以外,Protect中还可以使用以下参数:

    DrawingObjects:是否保护图表。如:Ws.Protect(DrawingObjects:=True)
    Contents:是否保护单元格内容。
    Scenarios:是否保护方案。
    UserInterfaceonly:是否保护用户界面,但不保护宏。如果省略本参数,则保护既应用于宏也应用于用户界面。 
    AllowFormattingCells:是否允许用户为受保护的工作表上的任意单元格设置格式。
    AllowFormattingColumns:是否允许用户为受保护的工作表上的任意列设置格式。
    AllowFormattingRows:是否允许用户为受保护的工作表上的任意行设置格式。
    AllowInsertingColumns:是否允许用户在受保护的工作表上插入列。
    AllowInsertingRows:是否允许用户在受保护的工作表上插入行。
    AllowInsertingHyperlinks:是否允许用户在受保护的工作表中插入超链接。
    AllowDeletingColumns:是否允许用户在受保护的工作表上删除列,要删除的列中的每个单元格都是解除锁定的。
    AllowDeletingRows:是否允许用户在受保护的工作表上删除行,要删除的行中的每个单元格都是解除锁定的。
    AllowSorting:是否允许用户在受保护的工作表上进行排序。排序区域中的每个单元格必须是解除锁定的或取消保护的。
    AllowFiltering:是否允许用户在受保护的工作表上设置筛选。用户可以更改筛选条件,但是不能启用或禁用自动筛选功能。用户也可以在已有的自动筛选功能上设置筛选。
    AllowUsingPivotTables:是否允许用户在受保护的工作表上使用数据透视表。

     
  • UnProtect

    撤销保护工作表。
    如果在保护工作表时没有设置密码,则直接使用UnProtect即可;如果设置了密码,则需要在撤销保护工作表时指定保护密码,如:
    Ws.UnProtect(Password:="hhh")

--  作者:发财
--  发布时间:2016/10/14 10:38:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:新建 microsoft office excel 97-2003 工作表.xls


--  作者:发财
--  发布时间:2016/10/14 10:40:00
--  
如何解码EXCEL表密码?
--  作者:有点蓝
--  发布时间:2016/10/14 10:49:00
--  
密码是多少?
--  作者:发财
--  发布时间:2016/10/14 11:09:00
--  
忘记密码应如何解?
--  作者:有点蓝
--  发布时间:2016/10/14 11:16:00
--  
本论坛不提供破解的技术支持,不管和狐表有没有关系。请自行到网络搜寻解决方案
--  作者:发财
--  发布时间:2016/10/14 11:27:00
--  
老师,帮我修改一下2楼的办法,可以吗?