【问题标题】:Make workbook read only将工作簿设为只读
【发布时间】:2018-11-23 12:19:43
【问题描述】:

我有一个由 VBA 宏自动更新的工作簿。

为了解决用户在宏尝试更新工作簿时以读写方式打开工作簿的潜在问题,我在宏保存时将属性设置为只读,然后在打开时将其关闭要编辑的书。

SetAttr ThisWorkbook.Path & "\booktoupdate.xlsx", vbNormal

'Paste in some values

SetAttr ThisWorkbook.Path & "\booktoupdate.xlsx", vbReadOnly

但是任何用户都可以进入文件的属性并关闭只读。

有什么方法可以保护文件,使只读只能由 VBA 更改?

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    这将完全符合您的要求:在保存工作簿时,您可以使用如下密码启用,

    ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\booktoupdate.xlsx", _
        WriteResPassword:="enter your password", ReadOnlyRecommended:=True
    

    当其他用户尝试编辑时,它会提示输入密码并且excel保持只读模式

    【讨论】:

    • 这不会阻止文件被其他人编辑!
    • @Pspl 这将阻止,因为我们正在使用密码保存文件并且启用了只读模式,试试这个会起作用,如果你不能得到结果然后投反对票。
    • @DvynResh 这似乎确实符合我的要求,但是现在当我尝试打开文件时,我收到一个错误,提示我输入的密码不正确。在显示密码框之前,有什么想法会导致这种情况吗?只是一个奇怪的错误?
    • 更新:该问题仅在我第一次尝试打开文件时发生。以下时间可以正常工作,当另一个用户尝试打开它时似乎也可以正常工作。所以这不是一个大问题。
    • @EdwardHall 很高兴它为您工作,关于该错误,您可以重新检查打开工作簿的代码。
    猜你喜欢
    • 2018-07-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-08
    • 2015-09-07
    • 1970-01-01
    • 1970-01-01
    • 2013-12-23
    • 1970-01-01
    相关资源
    最近更新 更多