我需要密码保护整个工作簿才能打开。没有必要保护工作表,因为用户将在生成报告后进行一些编辑。代码在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时管理它。
答案 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