注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

往事如烟

科技创造价值

 
 
 

日志

 
 

清除excel保护密码  

2010-11-20 16:51:40|  分类: 常规教程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

    操作前请把原文件COPY一份,再操作。

    1、打开文件;
    2、工具---宏----录制宏---输入名字如:宏1;
    3、停止录制(这样得到一个空宏);
    4、工具---宏----选“宏1”,点编辑按钮;
    5、删除窗口中的所有字符(只有几个),替换为下面的内容(复制到窗口中);
    6、关闭编辑窗口;
    7、工具---宏-----选AllInternalPasswords,运行,确定两次,等2分钟,再确定,OK,没有密码了!!

    附替换后代码:

Private Function AllInternalPasswords()
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 "当前工作表没有被保护……", 32, "提示"
  Exit Function
End If
   
If Not WinTag Then
  'MsgBox "仅保护工作表﹐没有设保护密码……", 32, "提示"
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)
          Exit Do
        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 Exit Function
  On Error Resume Next
  For Each w1 In Worksheets
      w1.Unprotect PWord1
  Next w1
   
  On Error GoTo 0
  ShTag = False
  For Each w1 In Worksheets
      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)
              
              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 "工作表保护已经被取消......", 32, "提示"
End Function

  评论这张
 
阅读(864)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017