保护工作簿,但允许按代码进行更改

时间:2013-12-02 19:54:29

标签: excel vba excel-vba excel-2007 excel-2010

我正在寻找以下语句的等价物,但是对于工作簿保护:

Worksheet.Protect "Password", UserInterfaceOnly := True

所以我不希望用户篡改工作簿,但按代码更改很好。

1 个答案:

答案 0 :(得分:2)

这是不可能的,因为Workbook.Protect()方法没有这样的参数。 相反,您可以尝试取消保护工作簿 ... 执行您的代码 ... 再次保护工作簿。

Public Sub UserProtection()
    Const PASS As String = "666bytes" 
    ThisWorkbook.Unprotect (PASS)
    '...YOUR CODE...what you want to do...
    ThisWorkbook.Protect (PASS)
End Sub

另外,让我提醒您,以明文字符串格式保存密码(如本例所示)不是一个好习惯。 (如果有人想要破解你的表,那不是很有帮助)...... :)只是我们