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

并且我知道密码,密码也是一样的,请哪位大侠帮忙。

通过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


以上仅供参考。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-25

把代码复制到你的宏模块下;把代码中123的地方,改成你工作表的密码。运行即可;


Sub test()
Dim sh
For Each sh In ThisWorkbook.Sheets
sh.Unprotect (123)
Next sh
End Sub

本回答被提问者采纳
第2个回答  2013-07-12
用宏可以解决。不过有点奇怪,如果密码都一样,为什么不在工作簿加密,而要一个表格一个表格加密呢
第3个回答  2013-07-12
需要什么经验
相似回答