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

我正在寻找与以下语句相同的内容,但对于工作簿保护:

Worksheet.Protect "Password", UserInterfaceOnly := True 

所以我不希望用户篡改工作簿,但通过代码更改是好的。

这是不可能的,因为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 

另外,让我提醒你,以简单的string格式保存密码(如本例中)不是一个好习惯。 (不是说如果有人想破解你的工作表,这将非常有用)… :)仅供参考