永发信息网

我有一个EXCEL表各格,里面有100多个sheet表格,都用相同的密码锁住了,如何一次将所有表格的密码解开,

答案:4  悬赏:60  手机版
解决时间 2021-03-26 00:27
  • 提问者网友:半生酒醒
  • 2021-03-25 10:59
我有一个EXCEL表各格,里面有100多个sheet表格,都用相同的密码锁住了,如何一次将所有表格的密码解开,
最佳答案
  • 五星知识达人网友:第幾種人
  • 2021-03-25 12:14
把代码复制到你的宏模块下;把代码中123的地方,改成你工作表的密码。运行即可;

Sub test()
Dim sh
For Each sh In ThisWorkbook.Sheets
sh.Unprotect (123)
Next sh
End Sub
全部回答
  • 1楼网友:枭雄戏美人
  • 2021-03-25 14:44
需要什么经验
  • 2楼网友:冷風如刀
  • 2021-03-25 14:36
用宏可以解决。不过有点奇怪,如果密码都一样,为什么不在工作簿加密,而要一个表格一个表格加密呢
  • 3楼网友:罪歌
  • 2021-03-25 13:39

通过VBA代码解决。
首先你得启用宏才行。启用宏的办法:
Excel2003:工具→宏→安全性,将宏安全性设为低。保存并关闭工作簿,重新打开。
Excel2007:  左上角圆形Office按钮→右下角Excel选项→信任中心→信任中心设置→宏设置,启用所有宏。保存并关闭工作簿,重新打开。(宏设置要重启Excel才生效)
Excel2007以上版本也差不多,可以在Excel帮助中搜“宏设置”看方法。
不要担心“不推荐”这个字眼。我提供的代码绝对安全的。完成宏设置后按如下操作:
1) 下载附件工作簿
2) 打开你的工作簿,并打开附件工作簿(此时只能看到你的工作簿,附件工作簿是不可见的)
3)按快捷键Ctrl+Shift+K,会要求你输入密码。输入密码后确定。
4)Excel会自动取消你工作簿所有表格的保护,并告知成功多少,如果有失败的则告诉你那些失败。
具体代码如下,仅供参考,知不知道无所谓。Sub UnProtectSheet()
    Dim strCode, sht As Worksheet, strInfo As String
    Dim n As Integer, k As Integer
    strCode = Application.InputBox(prompt:="请输入密码:")
    If strCode = False Then Exit Sub
    On Error Resume Next
    For Each sht In ActiveWorkbook.Worksheets
        sht.Unprotect strCode
        If Err.Number > 0 Then
            Err.Clear
            k = k + 1
            strInfo = strInfo & Chr(10) & sht.Name
        Else
            n = n + 1
        End If
    Next sht
    MsgBox prompt:="共有" & n & _
        "个工作表取消保护成功,失败" & k & "个:" & Chr(10) & strInfo
End Sub

追问但又要如何一次性将这些表格上锁呢?追答
如果上锁,按如下修改:
第8行改为:sht.Protect strCode
第17行改为:
MsgBox prompt:="共有" & n & _
        "个工作表保护成功,失败" & k & "个:" & Chr(10) & strInfo
但是以上不够严谨,因为工作表保护只对锁定的单元格生效,还应该在第8行前加一行:sht.Cells.Locked = True


以上仅供参考。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯