密码从MS Access保护Excel工作簿

时间:2014-02-04 09:26:37

标签: excel vba ms-access password-protection

我需要密码保护整个工作簿才能打开。没有必要保护工作表,因为用户将在生成报告后进行一些编辑。代码在MS Access中运行。 Office版本是2003年。由于某些限制,不可能使用“SAVE AS”密码保护方法。

请指出我在这里做错了什么?

这是我到目前为止所尝试的内容:

Sub testProtection()
Dim xl As New Excel.Application
Dim wkbook As Workbook
Dim fileToOpen As String

    On Error GoTo ExitMe
    fileToOpen = "filepath & name"
    Set wkbook = xl.Workbooks.Open(fileToOpen)
以下行中的

错误:调用的自动化错误对象与其客户端断开连接

    wkbook.Protect Password:="100", Structure:=True, Windows:=True
    wkbook.Close savechanges:=True

ExitMe:

    MsgBox err.Description

    Set xl = Nothing
    Set wkbook = Nothing
    Call cleanAllXLInstances
End Sub

PS:如果解决方法可以与MS 2010兼容,那将是一种激励,因为将来会迁移工具 - 但此时并非强制要求。如果能够解决当前的代码,我可以在稍后查看API时管理它。

1 个答案:

答案 0 :(得分:0)

此时我需要确保 Display Alerts = False取消警告,以便在同一位置使用相同名称的“另存为”文件。这与提出的问题的初始限制相矛盾......

        If xlPwd <> 0 Then
            wkBook.SaveAs fileName:=fileToSaveAs, Password:=xlPwd, CreateBackup:=False
            wkBook.Close
            strMssg = " : Report is Protected!"
        Else
            strErrMssg = " : Report is NOT Protected!"
            isWrapped = False
            GoTo ExitMe
        End If