首页 > 解决方案 > 使用密码保护已关闭的工作簿

问题描述

我已经搜索但没有找到在关闭的工作簿上放置外部密码的方法。假设我已经关闭了名为“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

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

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

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

感谢先进的帮助

在此处输入图像描述

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

标签: excelvba

解决方案


您正在寻找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

推荐阅读