用密码保护关闭的工作簿

时间:2020-05-05 22:51:34

标签: excel vba

我进行了搜索,但没有找到在封闭的工作簿上放置外部密码的方法。 假设我已经关闭了名为“ Sample.xlm”的工作簿,并且正在打开名为“ Test.xlm”的工作簿。 是否有代码使我可以在Sample.xlsm上输入密码?我的意思是外部密码.. 我尝试了以下操作,但出现错误(对象工作簿的方法保护失败)

Sub Test()
    Dim wb As Workbook

    Set wb = Workbooks.Open(ThisWorkbook.Path & "\Sample.xlsm")
    wb.Protect Password:="123"
    wb.Close True
End Sub

**我正在使用“保护和共享工作簿”保护示例工作簿,并且我已更改为“取消共享”。这是出现错误的问题。

现在代码正在运行,但是在运行代码后打开Sample工作簿时,我发现它没有保护。我希望得到保护。

**看来我的方法也错了。这样可以保护工作簿的结构,而不在快照显示时设置外部密码。

感谢高级帮助

enter image description here

也张贴在这里 https://www.mrexcel.com/board/threads/set-password-to-closed-workbook.1133150/

1 个答案:

答案 0 :(得分:3)

您正在寻找Workbook.SaveAs-可选参数之一,Password可以满足您的需求...但是您需要先打开工作簿-以及使用任何代码处理文件系统,我们需要在此处处理错误:

    On Error GoTo CleanFail
    Application.DisplayAlerts = False
    Dim path As String
    path = ThisWorkbook.Path & "\Sample.xlsm"
    With Workbooks.Open(path)
        .SaveAs path, Password:="P@$$w0rd"
        .Close
    End With
CleanExit:
    Application.DisplayAlerts = True
    Exit Sub
CleanFail:
    Debug.Print Err.Description
    Resume CleanExit
相关问题