防止用户编辑手动范围(但允许VBA)

我想阻止用户能够编辑一定范围的单元格。 但VBA应该保持这样做的能力。 所以当按下Excel中的button时,VBA应该能够对Cell的值进行修改,而用户不能手动执行此操作。

刚刚find了一个适合我的需求的其他软件: 如何保护Excel中的单元格,但允许这些被VBA脚本修改

只有我还在质疑的是,如果这个答案适用于某个范围而不是整个练习册呢?

Sollution

Worksheet.Protect“密码”,UserInterfaceOnly:= True

申请在一定的范围(我觉得下面的代码应该工作…?):

Worksheet.Sheets(“ControlSheet”)。范围(“M5:N19”)。保护“密码”,UserInterfaceOnly:= True

使用VBA保护工作表:

Dim sh As Worksheet Dim myPassword As String myPassword = "password" For Each sh In ActiveWorkbook.Worksheets sh.Protect Password:=myPassword Next sh 

现在,如果你想用VBA修改某些东西,你可以用下面的方法解除它们的保护:

 Dim sh As Worksheet Dim myPassword As String myPassword = "password" For Each sh In ActiveWorkbook.Worksheets sh.Unprotect Password:=myPassword Next sh 

然后再保护他们。