VBA Excel使工作簿为只读

时间:2018-11-23 12:19:43

标签: excel vba excel-vba

我有一个工作簿,该工作簿由VBA宏自动更新,因此可以更新某些值。

要解决宏尝试更新工作簿时另一个用户打开工作簿的潜在问题,我正在使用一种变通方法,即在宏保存时将属性设置为只读,然后在打开时将其关闭要编辑的书。

double _position =  index * (_width + 2 * _horizontalPadding)
                    + (_selectedWidth+_horizontalPadding);
_scrollController.animateTo(
                  _position,
                  duration: Duration(milliseconds: 1000),
                  curve: Curves.ease);

但是,任何用户都可以轻松进入文件属性并关闭只读。有什么方法可以保护文件,以便只能通过VBA更改只读文件吗?

2 个答案:

答案 0 :(得分:1)

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

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

当其他用户尝试编辑时,它会提示您输入密码,而excel仍处于只读模式

答案 1 :(得分:-1)

您可以将目标设置为使用密码保护所有工作表,而不是将文件设置为只读:

Dim SH As Worksheet
For Each SH In ThisWorkbook.Sheets
    SH.Unprotect Password:="pass" 'choose a different password if you like
Next SH

'Do your thing

For Each SH In ThisWorkbook.Sheets
    SH.Protect Password:="pass"
Next SH

诚实我不知道您能否按照您的要求去做。